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