我的代码如下......
HANDLE event = CreateEvent(NULL, false, false, NULL);
// pass event to thread which will SetEvent(event);
DWORD dwResult = MsgWaitForMultipleObjectsEx(1, &event, 3 * 1000, QS_ALLEVENTS, 0);
在这种情况下,MsgWaitForMultipleObjectsEx甚至可以返回WAIT_ABANDONED_0吗? 什么类型的物品可以“放弃”?
答案 0 :(得分:3)
WaitForSingleObject()的MSDN文档中对此进行了描述。
只有互斥锁才会导致此错误情况。它表示获取互斥锁的线程在未通过调用ReleaseMutex()显式释放的情况下终止。这是一个非常严重的错误情况,有些事情是相当重要的,当发生这种情况时你应该点击Big Red Emergency Stop按钮。它几乎永远不会只是处于错误状态的互斥锁,无论该线程触及的其他共享程序状态是否也很可能不一致。