Win32API中的Event

刚学到这个感觉有点模糊/抽象,所以稍作整理

CreateEvent

创建一个Event返回一个句柄(失败返回0)

参数

  • lpEventAttributes
    指向一个SECURITY_ATTRIBUTES结构(就是句柄可不可以被继承那个东西)
  • bManualReset
    为TRUE的话必须要用ResetEvent手动复位;FALSE的话当测试事件的函数返回时,对象会自动被复位
    到这里就很容易懵逼,复位?置位?测试事件?没关系等待再看,看到后面不懂再会过来一起看就行
  • bInitialState
    TRUE则初始状态为置位;FALSE则初始状态是复位
    (懵逼2连)
  • lpName
    指针:事件对象名称

WaitForSingleObject

等待Event:等待一个Event置位或超时就返回

参数

  • hHandle
    事件对象句柄
  • dwMilliseconds
    超时时间

Note

换句话说,则个函数的作用就是等待一个Event对象
如果在WaitForSingleObject调用时,事件对象状态为复位的话,线程将会在WaitForSingleObject处等待(不返回),直到事件对象状态变为置位或超时(超时时间:dwMilliseconds)后,WaitForSingleObject才会返回。如果调用CreateEvent时,参数bManualReset指定FALSE的话,WaitForSingleObject返回后会又自动把这个Event的状态给换成复位
现在再看看CreateEvent中的参数bManualReset应该也就不懵逼了。测试事件的函数在这里就是WaitForSingleObject
所以总结下,复位状态就得等,置位了才能过去(这话感觉好直白)

SetEvent

手动将Event状态设为置位

参数

  • hEvent
    事件对象句柄

ResetEvent

手动将Event状态设为复位

参数

  • hEvent
    事件对象句柄

补充说明

  • 置位在官方文档中被称为signaled
  • 复位在官方文档中被称为nonsignaled

来源

https://frc6.com/index.php/archives/10/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯如初⊙ω⊙

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值