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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Papa

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

#1 投稿記事 by Papa »

タイマーイベント内にてスレッドを作成し処理を行っています。
処理を終了したスレッドを見つける良い方法はありませんか?
ゲスト

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

#2 投稿記事 by ゲスト »

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

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

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

#3 投稿記事 by Papa »

GetExitCodeThreadにてスレッドの終了を見つけられ下記の様にしました。
これがスレッドプールと同じかどうかわかりませんが解決しました。
ありがとうございました。

返信する