函数WaitForMultipleObjects

功能:该函数是Windows系统中功能非常强大的一个函数,几乎可以等待Windows系统中的所有内核对象

函数原型:

DWORD
WaitForMultipleObjects(
_In_ DWORD nCount,
_In_reads_(nCount) CONST HANDLE * lpHandles,
_In_ BOOL bWaitAll,
_In_ DWORD dwMilliseconds
);

nCount:指定列表中的句柄数量,最大值为MAXIMUM_WAIT_OBJECTS(64)

lpHandles:句柄数组的指针,HANDLE类型可以为(Event,Mutex,Process,Thread,Semaphore)数组

bWaitAll:等待的类型,如果为TRUE,表示除非对象都发出信号,否则就一直等待下去;如果为FALSE,表示任何对象发出信号即可

dwMilliseconds:指定要等候的毫秒数,如:为0,表示立即返回,为INFINITE,则可根据实际情况无限等待下去

返回值:

WAIT_ABANDONEN_0:所有对象都发出消息,而且其中有一个或多个属于互斥体(一旦又有他们的进程中止,就会发出信号)

WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待时间超过

WAIT_OBJECT_0:所有对象都发出信号(WAIT_OBJECT_0是微软定义的一个宏,就是一个数,例如:WAIT_OBJECT_0+5表示列表中的第5个对象发出了信号)

WAIT_IO_COMPLETION:(仅适用于WaitForMultipleObjectsEx)由于一个I/O完成操作已做好准备执行,所以造成函数的返回

WAIT_FAILED:函数执行失败,会设置GetLastError

posted @ 2018-05-12 20:17  c&z  阅读(504)  评论(0编辑  收藏  举报