スレッドの終了の仕方


研究者  2005-03-03 09:51:34  No: 56565  IP: [192.*.*.*]

マルチスレッドの終了の仕方について質問があります。

ループ処理を実行中のスレッドを他のスレッドから
ループ処理の条件以外で終了させたいのですが
TerminateThread()を使用して強制終了させると
メモリーリークが発生する可能性があるようなんで
他の方法を探しています。

やはりループの中身にPeekMessage()を使用し終了メッセージが
あるかチェックするしか方法は無いのでしょうか?
その場合PeekMessage()の呼び出し位置以降で
終了メッセージを受けると次のPeekMessage()まで待たないと
行けないですよね。
即、終了させる方法はないでしょうか?

編集    削除
あああ  2005-03-03 10:55:26  No: 56566  IP: [192.*.*.*]

ポーリングなら PeekMessage を複数挿入して頻度を上げる。

そのループがブロッキングできる作りなら
MsgWaitForMultipleObjectsEx や
WaitForMultipleObjects で待機。Event で通知する。

編集    削除