WaitForMultipleObjects()是否重置所有自动重置事件?

我有一个事件循环等待几个自动重置事件。 事件都被初始化为具有CreateEvent(NULL, false, false, NULL)数组eventHandles_ CreateEvent(NULL, false, false, NULL)

 while (true) { DWORD waitResult = WaitForMultipleObjects(3, eventHandles_, false, INFINITE); switch (waitResult) { case WAIT_OBJECT_0 + 0: //handle event... case WAIT_OBJECT_0 + 1: //handle event... case WAIT_OBJECT_0 + 2: //handle event... } } 

我的问题是:如果事件1和2同时发生,则循环将首先处理WAIT_OBJECT_0 + 1 。 但是当循环再次出现时,事件2是否会继续发出信号? 还是自动重置?

Solutions Collecting From Web of "WaitForMultipleObjects()是否重置所有自动重置事件?"

“…修改只发生在信号状态导致函数返回的对象或对象…”

http://msdn.microsoft.com/en-us/library/windows/desktop/ms687025(v=vs.85).aspx

从一个Raymond Chen的口中:

如果等待一个事件,那么只有该事件被修改。 如果等待所有事件,则全部被修改。 这就是文档所指的“对象或对象”。 单数,如果等待,任何复数,如果等待所有。