ページ 11

終了したスレッドのCloseHandle処理について

Posted: 2020年1月20日(月) 10:43
by Papa
タイマーイベント内にてスレッドを作成し処理を行っています。
処理を終了したスレッドを見つける良い方法はありませんか?

Re: 終了したスレッドのCloseHandle処理について

Posted: 2020年1月21日(火) 01:08
by ゲスト
スレッド終了検知には WaitForMultipleObjects() 関数が使えます。
貴方のコードを見ると、定期的に繰り返し呼び出される Timer イベントの中でスレッド終了検知処理を行なっておられるようなので、タイムアウトとして 0 [ms] を指定して、関数名に反して Wait せずに終了判定だけする使い方になろうかと思います。

が…このテの処理でモダンな設計としては、スレッドの生成と破棄をその都度その都度おこなうのではなく、私だったらスレッドプール方式を検討します。

Re: 終了したスレッドのCloseHandle処理について

Posted: 2020年1月23日(木) 09:55
by Papa
GetExitCodeThreadにてスレッドの終了を見つけられ下記の様にしました。
これがスレッドプールと同じかどうかわかりませんが解決しました。
ありがとうございました。