【发布时间】:2013-01-11 09:49:46
【问题描述】:
我愿意WaitForSingleObject(handle, timeout);
如果句柄在调用WaitForSingleObject 之前已经发出信号,该函数将返回什么?
我认为它应该立即返回 WAIT_OBJECT_0...但在我的情况下,它会等待事件被设置,并且由于没有发生(事件已经设置),它会超时。
请指教。
【问题讨论】:
-
是的 - @Roman 说的。如果要保存信号,请使用手动重置事件或信号量。
-
如果
WaitForSingleObject超时,则表示您的句柄未发出信号。如前所述,这可能是因为您正在使用自动重置事件(之前已调用过WaitForSingleObject或WaitForMultipleObjects。或者您的代码中的其他地方有错误。
标签: c++ multithreading winapi visual-c++ synchronization