我有这段代码在一个次要线程中:
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时它能工作,但有时候即使应该等待10秒,当调用WaitForSingleObject时它会立即超时。
GetLastError()
吗? - Mooing Duck