函数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