CreateEvent

CreateEvent(    __in_opt LPSECURITY_ATTRIBUTES lpEventAttributes,    __in     BOOL bManualReset,    __in     BOOL bInitialState,    __in_opt LPCSTR lpName    );bManualReset: 指定将事件对象创立成手动还原还是主动还原。如果是TRUE, 那么必须用ResetEvent函数来手工将事件的状态还原到无信号状态。  如果是FALSE,当事件被一个期待线程开释当前,零碎将会主动将事件状态还原为无信号状态。bInitialState:指定事件对象的初始状态;  当TRUE, 初始状态为有信号状态;  当FALSE, 初始状态为无信号状态。

SetEvent / ResetEvent

别离将EVENT置为这两种状态别离是有信号状态与无信号

WaitForSingleObject / WaitForMultipleObjects

WaitForSingleObject(    _In_ HANDLE hHandle,    _In_ DWORD dwMilliseconds    );    参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是工夫距离。如果工夫是有信号状态返回WAIT_OBJECT_0,如果工夫超过dwMilliseconds值但工夫事件还是无信号状态则返回WAIT_TIMEOUT。WaitForSingleObject 的返回值有以下三种状况:WAIT_OBJECT_0:示意你期待的对象(比方线程、互斥体)已的失常执行实现或实现开释。WAIT_TIMEOUT:示意你期待的对象在还没实现之前,由 WaitForSingleObject 设置的工夫曾经超时。WAIT_ABANDONED:这是针对期待对象是互斥体的状况,当互斥体对象尽管没有被占用它的线程开释,然而占用它的线程已提前停止时,WaitForSingleObject 就返回此值。WaitForSingleObject函数用来检测 hHandle事件的信号状态当函数的执行工夫超过dwMilliseconds就返回,如果参数dwMilliseconds为INFINITE时 函数将直到相应工夫事件变成有信号状态才返回,否则就始终期待上来,直到WaitForSingleObject有返回直才执行前面的代码。