不以物喜,不以己悲

C++中CreateEvent函数

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-在指定的时间内得不到答复

posted @ 2021-06-10 18:40  这种人  阅读(305)  评论(0编辑  收藏  举报