jap*_*iss 6 windows events winapi multithreading asynchronous
我有一个等待几个自动重置事件的事件循环.这些事件都初始化为数组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...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:如果事件1和2同时发生,循环将处理,WAIT_OBJECT_0 + 1
因为它是第一个.但是当循环再次出现时,事件2是否仍会发出信号?还是会自动重置?
"......修改只发生在信号状态导致函数返回的对象或对象中......"
http://msdn.microsoft.com/en-us/library/windows/desktop/ms687025(v=vs.85).aspx
从一个雷蒙德陈的口中:
如果等待一个事件,则仅修改该事件.如果等待所有事件,则修改所有事件.这就是文档对"对象或对象"的意义.单数如果等待任何,复数如果等待所有.
归档时间: |
|
查看次数: |
1558 次 |
最近记录: |