C++基础之事件处理函数介绍(CreatEvent() /WaitForSingleObject):

1.事件函数之CreatEvent() :

函数格式:

HANDLE CreateEvent(
  LPSECURITY_ATTRIBUTES lpEventAttributes, // SD
  BOOL bManualReset,                       // reset type
  BOOL bInitialState,                      // initial state
  LPCTSTR lpName                           // object name
);

参数说明:

  • IpEventAttributes :指向一个结构体,该结构体决定该句柄是否被子进程继承。
  • bManualReset: true 表示信号来了需要手动复位,否则一直表示有信号。False 表示一个等待该信号的线程释放就会变为无信号。
  • bIntialstate:表示初始为有信号或者无信号
  • IpName: 表示事件的名称。

使用方法:

参考网址:CreatEvent 函数参考

2.WaitForSingleObject() 函数介绍:

函数格式:

DWORD WaitForSingleObject(
HANDLE hObject, //指明一个内核对象的句柄
DWORD dwMilliseconds); //等待时间

函数作用:

  • 使用该函数等待某个内核对象变为已通知状态。

函数返回值说明:

返回值类型相关说明
WAIT_OBJECT_0内核对象在已通知状态
WAIT_TIMEOUT等待时间超时
WAIT_FAILED函数调用失败,比如参数不对

函数特点:

  • 如果该内核对象处于未通知状态,则该函数会导致线程处于阻塞状态。
  • 如果内核对应已处于通知状态,则函数立即返回WAIT_OBJECT_0

参考网址:https://blog.youkuaiyun.com/weixin_39345003/article/details/90899556

3. WaitForMultipleObjects() 函数介绍:

函数格式:

DWORD WaitForMultipleObjects(
DWORD dwCount, //等待的内核对象个数
CONST HANDLE* phObjects, //一个存放被等待的内核对象句柄的数组
BOOL bWaitAll, //是否等到所有内核对象为已通知状态后才返回
DWORD dwMilliseconds); //等待时间

  • dwCount 为0到MAXIMUM_WAIT_OBJECTS(64)中的一个值

函数作用:

函数返回值:

  • WAIT_OBJECT_0 表示成功; WAIT_OBJECT_0 + 0 表示h[0] 进程结束,WAIT_OBJECT_0 + 1 表示h[1]进程结束。
  • WAIT_FAILED:返回失败
  • WAIT_TIMEOUT:表示超时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值