C++事件使用方法

创建事件  CreateEvent

头文件:#include “windows.h”

HANDLE CreateEvent(

 LPSECURITY_ATTRIBUTES lpEventAttributes,  // SECURITY_ATTRIBUTES结构指针,可为NULL

 BOOL bManualReset,                                 // 是否手动重置信号

                                                                       // TRUE:手动,在WaitForSingleObject后必须手动调用ResetEvent清除信号

                                                                       // FALSE:自动,在WaitForSingleObject后,系统自动清除事件信号

 BOOL bInitialState,         //初始状态,FALSE为无信号,TRUE为有信号

 LPCTSTR lpName         //事件的名称

    );     

检测事件信号状态  WaitForSingleObject

DWORD WaitForSingleObject(

HANDLE hHandle,                 //事件句柄

DWORD dwMilliseconds      //此次检测等待时间,单位:毫秒,0为立即返回,INFINITE为无限等待

);

返回值:

WAIT_ABANDONED 0x00000080:当hHandle为mutex时,如果拥有mutex的线程在结束时没有释放核心对象会引发此返回值;

WAIT_OBJECT_0      0x00000000 :核心对象已被激活;

WAIT_TIMEOUT         0x00000102:等待超时;

WAIT_FAILED            0xFFFFFFFF :出现错误,可通过GetLastError得到错误代码;

WaitForSingleObject除了可以等待通过CreateEvent创建的普通事件,也可以等待通过CreateWaitableTimer创建的定时器事件,以及其他类型的事件。

激活事件  SetEvent

BOOL SetEvent(

HANDLE hEvent          //事件句柄

);

释放事件  ResetEvent

BOOL ResetEvent(

HANDLE hEvent         //事件句柄

);

猜你喜欢

转载自blog.csdn.net/rammuschow/article/details/81514380