私のアプリケーションでスレッドが実行されています。スレッド内で、自動リセットイベントが終了するのを待っています。私はそれを使用した後、イベントのハンドルを閉じることを確認したい。 2つのオプションがあります。すぐにラインWaitForSingleObject
SetEventを呼び出した後にCloseHandleを呼び出す
後CloseHandle
を呼び出すSetEvent
CloseHandle
を呼び出す
- 。
私のアプリケーションでスレッドが実行されています。スレッド内で、自動リセットイベントが終了するのを待っています。私はそれを使用した後、イベントのハンドルを閉じることを確認したい。 2つのオプションがあります。すぐにラインWaitForSingleObject
SetEventを呼び出した後にCloseHandleを呼び出す
後CloseHandle
を呼び出すSetEvent
CloseHandle
を呼び出す
SetEvent
の後にCloseHandle
を呼び出すとわかりません。 WaitForSingleObject
の後に(必要に応じて)CloseHandle
に電話する必要があります。
すべてのスレッドが使用を終了したらハンドルを閉じます。 WaitForSingleObjectが賢明に聞こえるようになった後(成功すれば、SetEventは完了しているはずです)。
また、スレッドごとに(DuplicateHandleなどを使用して)ハンドルのコピーを作成し、終了時にそれぞれのコピーを閉じることができます。それは間違っていることがずっと難しく、コードの分析が少なくて済みます。
イベントがそのジョブを完了し、もう必要ないと確信したときに、イベントハンドルを閉じる。あなたの場合は、それが検出された後に設定されています。だから、WaitForSingleObject
のブロックを解除した後でイベントを閉じる。