1、 CreateEvent
HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset,
BOOL bInitialState,LPCTSTR lpName );
功能:创建一个命名或无名的事件对象
参数:
lpEventAttributes:安全属性。可简单设置为NULL
bManualReset:复位方式。 指定将事件对象创建成手动复原还是自动复原。如果是TRUE,那么必须用ResetEvent函数来手工将事 件的状态复原到无信号状态。如果设置为FALSE,当事件被一个等待线程释放以后,系统将会自动将事件状态复原为 无信号状态。
bInitialState: 初始状态。指定事件对象的初始状态。如果为TRUE,初始状态为有信号状态;否则为无信号状态。
lpName: 对象名称。可简单设置为NULL。
可能还需要使用到的函数:
1、 SetEvent
BOOL SetEvent(HANDLE hEvent );
功能:设置事件对象为有信号状态。
2、 ResetEvent
BOOL ResetEvent( HANDLE hEvent );
功能:设置事件对象为无信号状态。
3、 WaitForSingleObject
DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds );
功能: 检测hHandle事件的信号状态。
参数:
hHandle:句柄。可以是Event 、Mutex 、Semaphore 、Process 、Thread
dwMilliseconds:超时时间。
返回值:
WAIT_OBJECT_0:核心对象已被激活。
WAIT_TIMEOUT:等待超时。
WAIT_FAILED:失败。出现错误,可通过GetLastError得到错误代码。
4、 其它WaitForMultipleObjects、_beginthreadex、CreateThread等。