发布时间:2025-12-09 12:02:40 浏览次数:1
函数原型:
HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 一般为NULL BOOL bManualReset, // 手动/自动 // TRUE:表示手动,在WaitForSingleObject后必须手动调用ResetEvent清除信号 // FALSE:表示自动,在WaitForSingleObject后,系统自动清除事件信号 BOOL bInitialState, // 初始状态,FALSE为无信号,TRUE为有信号 LPCTSTR lpName // 事件的名称 ); CloseHandle:关闭句柄
SetEvent:设置为激活触发状态
PulseEvent():重置信号-》设置信号-》重置信号,使信号状态发生一次脉冲变化
ResetEvent:设置为未激活触发状态
WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds);
检测信号,如果未激活,代码会处于挂起状态,不再往下执行(INFINITE 无限等待)
第一个参数指明对象句柄
第二个参数表明wait时间
返回值:
WAIT_ABANDONED -说明句柄代表的对象是个互斥对象,并且正在被其它线程占用
WAIT_OBJECT_0- 说明句柄对象处于有信号状态
WAIT_TIMEOUT-在指定的时间内得不到答复