HANDLECreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,// 安全属性
// 一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否可被子进程继承。
// 如果lpEventAttributes是NULL,此句柄不能被继承。
BOOL bManualReset,// 复位方式
// 指定将事件对象创建成手动复原还是自动复原。
// TRUE,那么必须用ResetEvent函数来手工将事件的状态复原到无信号状态。
// FALSE,当一个线程等待到事件信号后系统会自动将事件状态复原为无信号状态。
BOOL bInitialState,// 初始状态
// 指定事件对象的初始状态。如果为TRUE,初始状态为有信号状态;否则为无信号状态。
LPCTSTR lpName // 对象名称
// 指定事件的对象的名称,是一个以0结束的字符串指针。名称的字符格式限定在MAX_PATH之内。
// NULL,将创建一个无名的事件对象。
);
一个Event被创建以后:
用OpenEvent()API来获得它的Handle,
用CloseHandle()来关闭它,
用SetEvent()或PulseEvent()来设置它使其有信号,
用ResetEvent()来使其无信号,
用WaitForSingleObject()或WaitForMultipleObjects()来等待其变为有信号(线程结束运行)。