CreateEvent的复习

原创 2012年03月23日 21:14:11
WINDOWS下的事件,以前也用过。忘了。
CreateEvent函数用来创建一个事件,返回事件句柄,参数需要传入事件名称,是否手动设置信号,开始时是否为有信号状态等。
在这里不是在讲一遍怎么使用函数,主要是说一下今天在编程中对ResetEvent函数的一个使用场景。
使用一个线程不断地从一个队列中取出节点进行运算,当队列为空时线程不能够退出,必须等待其他线程向里面插入数据后再开始工作,
也就是一个生产者消费者模式。在这里我们就可以创建一个手动重置信号的事件,而重置信号就放在判断队列为空时进行重置,这样就
避免了线程不断地去检测队列。
m_hEvent = CreateEvent(NULL,TRUE,FALSE,_T("TASKQUENE"));
//在线程中
while(m_nQuit != 2)
{
//如果队列为空的时候并不退出,而是等待新的下载任务
WaitForSingleObject(m_hEvent, m_nWaitTime);//m_nWaitTime默认为INFINIT,当要线程退出时,为了让线程检测退出条件,设置为0


if(m_pDownLoaderTaskQuene.size() == 0)
{
ResetEvent(m_hEvent);
continue;
}
....//其他操作
}
OK,以上就是这样

CreateEvent 和OpenEvent时事件全局名称问题 Global

欢迎看看我的另一个小窝,说不定有意外的惊喜哦 ^_^ www.devres.info 今天看别人的代码,注意到在操作事件对象时如下: sprintf(cTemp,"Global\\...

CreateEvent和SetEvent函数

当你创建一个线程时,其实那个线程是一个循环,不像上面那样只运行一次的。这样就带来了一个问题,在那个死循环里要找到合适的条件退出那个死循环,那么是怎么样实现它的呢?在Windows里往往是采用事件的方式...
  • softn
  • softn
  • 2012年05月07日 10:59
  • 182

VC++之 CreateEvent和SetEvent及WaitForSingleObject的用法

CreateEvent: 1、函数功能:    创建一个命名或匿名的事件对象   2、函数原型:   HANDLE CreateEvent(   LPSECUR...
  • lqhed
  • lqhed
  • 2016年05月24日 18:39
  • 1128

CreateEvent的用法

原文网址:http://blog.csdn.net/danforn/article/details/2304026 事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我...

Windows API——CreateEvent和SetEvent函数

Windows API——CreateEvent和SetEvent函数 (1)CreateEvent 函数原型: HANDLE CreateEvent(        LPSECU...
  • Nancy_m
  • Nancy_m
  • 2012年09月30日 10:18
  • 2509

Windows API CreateEvent函数用法

CreateEvent是创建windows事件对象,作用主要用在判断线程退出和锁定方面. HANDLE CreateEvent(   LPSECURITY_ATTRIBUTES lpEventAttr...

CreateEvent在多线程中使用(二)

1、简介   CreateEvent详细参数介绍,请参考

CreateEvent 和OpenEvent时事件全局名称问题 Global

今天看别人的代码,注意到在操作事件对象时如下: sprintf(cTemp,"Global\\EVENT_%s",lpFileName); m_hMapEvent = OpenEvent(EVEN...

JS自定义事件的定义和触发(createEvent, dispatchEvent)

【转】http://www.cnblogs.com/stephenykk/p/4861420.html 在JavaScript前端开发中,我们经常调用click、mouseup等基本事件。有的时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CreateEvent的复习
举报原因:
原因补充:

(最多只允许输入30个字)