首页 > 编程 > C++ > 正文

C++事件的建立和使用SetEvent,ResetEvent

2019-11-08 18:37:50
字体:
来源:转载
供稿:网友

一、事件是很常用的多线程同步互斥机制

     函数原型如下所示,一共四个参数:

HANDLE CreateEvent(

 LPSECURITY_ATTRIBUTES lpEventAttributes, // SECURITY_ATTRIBUTES结构指针,可为NULL BOOL bManualReset,     // 手动/自动                                     // TRUE:表示手动,在WaitForSingleObject后必须手动调用ResetEvent清除信号                                    // FALSE:表示自动,在WaitForSingleObject后,系统自动清除事件信号 BOOL bInitialState,        //初始状态,FALSE为无信号,TRUE为有信号 LPCTSTR lpName         //事件的名称    );

二、下面是使用演示:

     1、首先在要使用时间的类中声明这个事件的句柄,用来标识这个事件,如下所示:

             

      2、声明好了句柄,就要调用CreateEvent()函数创建事件了,如下所示:

            

      3、设置信号的初始状态,使用SetEvent()(激活状态)或者ResetEvent()(未激活状态),依据使用设置,这里是Set如下所示:

            

       4、在函数中检测事件的状态,如下所示在循环中检测事件的状态,如果事件未被激活,循环将会被挂起在这里,不会往下执行,除非在别处调用了SetEvent()或者ResetEvent(),这里是事件被激活之后才会往下执行:

    

            

        5、执行完成之后调用ResetEvent()将事件状态还原(如果创建事件的时候是手动设置的话)。

     from:http://blog.csdn.net/meloyi/article/details/50394735


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选