
No.1ベストアンサー
- 回答日時:
スレッドは自分自身で能動的に終了すべきです。
他のスレッド(ご質問のケースではプライマリスレッド)から「殺す」べきではないのです。
なぜかというと、スレッドが死ぬときに、スレッド自身が自分自身の中で確保した資源(たとえばメモリ領域とか、他のプロセスや他のスレッドとの排他制御を目的としたセマフォなど)を開放しなきゃいけないことを知っているのは、ほかならぬそのスレッドですから。
ということで、Tipをアドバイスしますね。
・プライマリスレッドが死んで欲しいスレッドに対して、「死んで欲しいんだけど」とお知らせします。単純な例では、グローバル変数に「死んで欲しい」フラグを定義し、死んで欲しくなったらフラグをONにします。
・死ぬほうのスレッドは、あるタイミングで(あると言っているのは、あなたの設計に依存するという意味です。)、「死んで欲しい」を検出できるようにしておいて、検出したら自ら必要とされる後始末をおこなって、綺麗に死んでいきます。このとき、ご質問の例では、_endthread()を呼び出します。
お解りいただけたでしょうか?
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- その他(コンピューター・テクノロジー) Ubuntu22.04ltsですが、たまにYou Tubeを聴いたり観たりしていると、無限ループでコ 2 2023/07/21 13:19
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
- ノートパソコン Windows11搭載パソコン 新規購入にあたって 4 2022/11/09 18:11
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- 高齢者・シニア Windows11適用の最低性能に満たないPC利用者がサポート終了でパソコンを買い替えるでしょうか? 2 2023/05/27 06:43
- デスクトップパソコン windows7を使っているパソコンでの質問です。先日動作が遅く再起動かけると「windowsを起動 9 2022/06/16 21:31
- フリーソフト タスクソフト? 1 2023/01/14 07:52
このQ&Aを見た人はこんなQ&Aも見ています
-
(マルチスレッド)_beginthreadexに複数の引数を渡す
C言語・C++・C#
-
VC++スレッドの正しい終了のさせかた
C言語・C++・C#
-
スレッドの安全な終了のさせ方
C言語・C++・C#
-
-
4
CString から LPCTSTRの型に変換
C言語・C++・C#
-
5
WaitForSingleObjectの使い方について
C言語・C++・C#
-
6
メインスレッドのPostMessageとマルチスレッドでの処理
C言語・C++・C#
-
7
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
8
マルチスレッドについて
C言語・C++・C#
-
9
EDITコントロールで入力できる文字を制限するには?
C言語・C++・C#
-
10
エディットボックスの入力制限について
C言語・C++・C#
-
11
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
12
_beginthreadexで生成したスレッドの返り値を取得する方法
C言語・C++・C#
-
13
文字列がNULLか空文字列かの判定
C言語・C++・C#
-
14
ハンドルはポインタか
C言語・C++・C#
-
15
SetDlgItemTextの使い方について
C言語・C++・C#
-
16
テキストボックスからフォーカス外す
C言語・C++・C#
-
17
画面を強制的に再描画させる方法
C言語・C++・C#
-
18
Windowsで作れるスレッド最大数教えてください。
iOS
-
19
CStringをwchar_tに変換したい
C言語・C++・C#
-
20
CStringをLPCTSTRへ変換
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スレッドにて同一メモリの書き...
-
スレッドの終了を知りたい(Wind...
-
VB2005 シリアル通信のClose処理
-
別スレッドのデータを受信できない
-
.netアプリへのSendMessageでフ...
-
VC++スレッドの正しい終了のさ...
-
マルチスレッド内のループについて
-
一定時間ごとにメッセージを表...
-
スレッドの監視方法について
-
メモリアクセスの競合について
-
スレッドでのモードレスダイア...
-
メインダイアログが最背面に表...
-
マルチスレッドの実行順序の制御
-
_beginthreadexで生成したスレ...
-
Windows上で、シグナル(SIGTERM...
-
グローバル変数が正常に参照で...
-
C# スレッドから親ウィンドウへ...
-
マルチスレッドについて
-
pthread_cond_wait 取りこぼし?
-
DirectX LPDIRECT3DDEVICE9のマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スレッドの監視方法について
-
VC++スレッドの正しい終了のさ...
-
スレッドの終了の仕方
-
WaitForSingleObjectの使い方に...
-
Windows上で、シグナル(SIGTERM...
-
別スレッドのデータを受信できない
-
スレッドの安全な終了のさせ方
-
スレッドにて同一メモリの書き...
-
別スレッドからメインダイアロ...
-
マルチスレッドのスレッド数を...
-
C# スレッド終了の監視について
-
MFC通信プログラムマルチスレッ...
-
Linuxでスレッド優先度って変え...
-
メインダイアログが最背面に表...
-
スレッドの終了はどうやるんで...
-
CWnd::OnTimerのスレッドの取得
-
C# スレッドから親ウィンドウへ...
-
メインスレッドのPostMessageと...
-
msec単位のWait Timerが作れない!
-
.NetのBackgroundWorkerクラス...
おすすめ情報