WaitForMultipleObjects函数使用注意事项
还是写那个串口调试助手出现的问题。
这个函数原型如下:
DWORD WaitForMultipleObjects( DWORD nCount, // number of handles in array CONST HANDLE*lpHandles, // object-handle array BOOL fWaitAll, // wait option DWORD dwMilliseconds // time-out interval );
第一个参数就是句柄数组的成员数。
第二个参数是句柄数组的地址
第三个是一个等待选项,就是在这出的问题。
第四个是超时设定
因为我使用MFC建立的工程,所以我使用的是CEvent,而不是创建事件句柄。
但是waitformultipleobjects函数需要的是一个句柄数组,所以需要将类中的句柄专门提取出来。
这个成员是m_hObject,本身的值就是一个句柄。
这样只要整合一下,就能统一赋值到一个数组中了。
但是我在fWaitAlll参数中犯了一个有点智障的错误,因为msdn没好好看。
这个参数如果设置为真,那么只有当所有的事件都被触发后才会进入下一步……
我一共设置了三个事件,但是我的要求是一旦事件响应之后,返回位于句柄数组中的地址,然后用switch去查询事件。
在我改成false后,果断好使了……