ResetEvent

40 篇文章 0 订阅
19 篇文章 4 订阅

ResetEvent

ResetEvent
这个函数把指定的 事件对象设置为无信号状态。
BOOL ResetEvent(
HANDLE hEvent
);
参数说明:
hEvent
[in] 指向 事件对象的句柄.由 CreateEvent or  OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限.
函数成功,返回非0值,否则返回0值,可以调用GetLastError得到错误的详细信息。
Remarks
一个 事件对象一直都保持在无信号状态,直到显式调用 SetEvent or PulseEvent 函数把它设置到有信号状态。 这些无信号的 事件对象会阻塞任何在内部调用wait函数的线程。
这个函数用于手动重置的 事件对象。手动重置的对象在 线程释放后必须手动置为无信号状态。 自动重置的 事件对象在一个等待它成功的线程释放后会自动变为无信号状态。
重置一个无信号的 事件对象没有任何效果。
示例:
//前面我们先申请一个CEvent对象
...
CEvent m_Event(FASLE , FALSE) ;
...
//第一个线程
DWORD WINAPI EventThreadFirst(LPVOID pParam)
{
for(int i(0) ; i != 5 ; i++)
{
WaitForSingleObject(m_Event.m_hObject , INFINITE) ;
cout << i*11+6 <<endl ;
}
return 0 ;
}
//第二个线程
DWORD WINAPI EventThreadSecond(LPVOID pParam)
{
for(int i(0) ; i != 5 ; i++)
{
m_Event.ResetEvent() ;
cout << i*5+2 <<" + "<< i*6+4 << " = ?" <<endl ;
cout << "让我想想..." << endl ;
Sleep(3000) ;
m_Event.SetEvent() ;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值