等待成功所引起的副作用

来源:互联网 发布:扑克牌记忆训练软件 编辑:程序博客网 时间:2024/05/20 18:18

成功的调用WaitForSingleObject或WaitForMultipleObjects事实上会改变对象的状态。

一个成功调用指的是函数发现对象已经被触发了,然后返回WAIT_OBJECT_0的一个相对值。

如果调用不成功,那么函数会返回WAIT_TIMEOUT或者WAIT_FAILED,这种情况下对象的状态不会发生改变。


如果对象状态经过WaitForSingleObject或WaitForMultipleObject调用后发生了变化,则称之为  等待成功所引起的副作用。


例如:

假设线程使用的是一个自动重置事件对象,当事件被触发 的时候,函数会检测到这一情况,这时它可以直接返回WAIT_OBJECT_0

给调用线程,但是在返回函数之前,它会使事件由 触发状态 变成 非触发状态 ---这就是等待成功所引起的副作用。

0 0
原创粉丝点击