场合:用于多线程中。
1.函数:
(1)创建事件
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,// 安全属性,可以为NULL
BOOL bManualReset,// 复位方式:
BOOL bInitialState,// 初始状态:FALSE为无信号,TRUE为有信号;
LPCTSTR lpName // 事件对象名称
);
复位方式说明:
TRUE:手动,在WaitForSingleObject后, 须手动调用ResetEvent清除信号;
FALSE:自动,在WaitForSingleObject后,系统自动清除事件信号;
(2)等待事件
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle,
__in DWORD dwMilliseconds //等待时间
);
参数:
hHandle 对象句柄;
dwMilliseconds 定时时间间隔,单位为milliseconds(毫秒)。
a)非零值,函数处于等待状态直到hHandle标记的对象被触发,或者时间到了;
b)0,如果对象没有被触发,函数不会进入一个等待状态,会立即返回;
c)INFINITE