私はこのコードをセカンダリスレッドに持っています:
DWORD result = WaitForSingleObject(myhandle,10000);
if(result == WAIT_OBJECT_0){
AfxMessageBox(_T(...));
}
else if(result == WAIT_TIMEOUT){
AfxMessageBox(_T("Timeout"));
}
常にではありませんが、WaitForSingleObjectが呼び出されるとすぐにタイムアウトが呼び出されることがあります(1秒の遅延もありません)。
私は何か間違ったことをしていますか?より安定した代替案について何か提案はありますか?
編集:
myhandle
クラスコンストラクタ内で次のように作成されます。
myhandle = CreateEvent(NULL,FALSE,FALSE,_T("myhandle"));
別の関数によって呼び出されます。
SetEvent(myhandle);
重要なのは、SetEventを実行すると機能するということです。問題は、WaitForSingleObjectが呼び出されるとすぐに、10秒待つ必要があるにもかかわらずタイムアウトになることがあるということです。