スレッドの終了待ちについて


Rush  2013-03-09 23:58:34  No: 73638

Windows7、VC++2010を使用しています

ダイアログAからダイアログBを作成し、その中でスレッドを作成してループ処理を行っています。
ダイアログAの終了時(ボタン押下)にダイアログBを終了するようにしていますが(自動でDestroyWindowが呼ばれ終了?)、BのスレッドでAのデータを使用している為、Bスレッドが終了するまで待つようにしています(WaitForSingleObjectで)が、いつまで経ってもループが終了せずに固まってしまいます。
SetEventでスレッド終了を通知するようにしています。
メインスレッドからサブスレッドに終了の通知をする必要がある?

ループの終了はダイアログAの終了(ボタン押下時にループ抜けのフラグを立てる)が契機

WaitForSingleObject以外でも何かいい解決方法はないでしょうか。
GetExitCodeThreadも使ってはみましたが結果は一緒でした。


επιστημη  2013-03-10 19:45:56  No: 73639

> SetEventでスレッド終了を通知するようにしています。

- この通知がスレッドに届いているか、確認しましたか?
- この通知に反応して、確実にスレッドが停止するか、確認しましたか?


Ruhs  2013-03-11 04:57:09  No: 73640

>- この通知がスレッドに届いているか、確認しましたか?
>- この通知に反応して、確実にスレッドが停止するか、確認しましたか?
SetEventの通知前に固まっているみたいなので確認してみます。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加