
No.1ベストアンサー
- 回答日時:
スレッドは自分自身で能動的に終了すべきです。
他のスレッド(ご質問のケースではプライマリスレッド)から「殺す」べきではないのです。
なぜかというと、スレッドが死ぬときに、スレッド自身が自分自身の中で確保した資源(たとえばメモリ領域とか、他のプロセスや他のスレッドとの排他制御を目的としたセマフォなど)を開放しなきゃいけないことを知っているのは、ほかならぬそのスレッドですから。
ということで、Tipをアドバイスしますね。
・プライマリスレッドが死んで欲しいスレッドに対して、「死んで欲しいんだけど」とお知らせします。単純な例では、グローバル変数に「死んで欲しい」フラグを定義し、死んで欲しくなったらフラグをONにします。
・死ぬほうのスレッドは、あるタイミングで(あると言っているのは、あなたの設計に依存するという意味です。)、「死んで欲しい」を検出できるようにしておいて、検出したら自ら必要とされる後始末をおこなって、綺麗に死んでいきます。このとき、ご質問の例では、_endthread()を呼び出します。
お解りいただけたでしょうか?
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows上で、シグナル(SIGTERM...
-
Linuxでスレッド優先度って変え...
-
マイクロソフトedge で5チャン...
-
VC++スレッドの正しい終了のさ...
-
スレッドの終了の仕方
-
WaitForSingleObjectの使い方に...
-
C# スレッド終了の監視について
-
_beginthreadexで生成したスレ...
-
マルチスレッドプログラム
-
特定のスレッドの破棄
-
メインスレッドのPostMessageと...
-
マルチスレッド?
-
Macターミナルで実行中のプログ...
-
powershell を使いカレントディ...
-
TCP/IP通信時のサーバーからの受信
-
プロセスIDの取得方法について
-
Excel(VBA)でSetTimer関数を使...
-
C# シリアル通信でデータ受信...
-
win10で、正確な待ち時間の作り方
-
VBSの処理中一旦処理を止めて再...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WaitForSingleObjectの使い方に...
-
VC++スレッドの正しい終了のさ...
-
Windows上で、シグナル(SIGTERM...
-
スレッドにて同一メモリの書き...
-
.netアプリへのSendMessageでフ...
-
メインスレッドのPostMessageと...
-
スレッドの監視方法について
-
C# スレッド終了の監視について
-
_beginthreadexで生成したスレ...
-
別スレッドのデータを受信できない
-
別スレッドからメインダイアロ...
-
スレッドの安全な終了のさせ方
-
マルチスレッドのスレッド数を...
-
VB2005 シリアル通信のClose処理
-
スレッドの終了の仕方
-
pthread_cond_wait 取りこぼし?
-
マルチスレッドプログラム
-
Linuxでスレッド優先度って変え...
-
別スレッドとイベントの終了手...
-
Win32APIでのスレッド処理
おすすめ情報