如何检查事件对象的状态而不实际更改它?

时间:2012-03-05 23:58:03

标签: winapi

问题是WaitForMultipleObjects(Ex)只返回数组中所有信号对象的最小索引。我想知道究竟什么事件对象(使用CreateEvent创建)处于信号(或非信号)状态。 我认为这是不可能的,但我决定只是为了确保我没有遗漏任何东西=)

1 个答案:

答案 0 :(得分:8)

对于要测试其状态的每个对象,以超时为零调用WaitForSingleObject。如果它返回WAIT_OBJECT_0,则表示该对象已发出信号。否则,它不是。

除非您有自动重置事件,否则等待对象发出信号不会改变其状态。

请记住,使用WaitForSingleObject检测到的状态不一定与WaitForMultipleObjects返回时对象的状态相同。在此期间可能会发出更多对象的信号,而其他对象可能已经变为无信号。