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,以上就是这样

c++中CreateEvent函数

http://blog.csdn.net/chenyujing1234/article/details/8572921 函数原型: [cpp] view pla...
  • u011642774
  • u011642774
  • 2016年10月11日 17:26
  • 501

c++中CreateEvent函数解析(1)

函数原型: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD BOOL bManualReset,...
  • chenyujing1234
  • chenyujing1234
  • 2013年03月10日 07:56
  • 4977

Win32 ::CreateEvent() 函数

HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,// 安全属性 BOOL bManualReset,// 复位方式 BOOL b...
  • su_787910081
  • su_787910081
  • 2014年03月20日 15:43
  • 1722

CreateEvent 自动/手动重置的测试

{ HANDLE hEvent = CreateEvent(NULL, FALSE, //automatically resets TRUE, //flag f...
  • zgl7903
  • zgl7903
  • 2013年03月26日 15:25
  • 1275

CreateEvent共享事件对象(进程间共享)

在进程间共享事件对象。 1. 服务端// EventServer.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include #include usi...
  • a379039233
  • a379039233
  • 2016年02月20日 18:42
  • 1192

关于CreateEvent的简单理解

CreateEvent 用来创建或打开一个命名的或无名的事件对象,对于它的其他解释,请自行百科,这里只简单描述它的两种常用用法! CreateEvent 的官方定义如下: HANDLE W...
  • jackey3Lin
  • jackey3Lin
  • 2015年12月22日 16:13
  • 2403

CreateEvent 创建和使用一个命名的事件对象

1、 HANDLE m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL);                             //创建通讯...
  • akzwakzw
  • akzwakzw
  • 2014年02月24日 15:37
  • 1107

Windows API一日一练(45)CreateEvent和SetEvent函数

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

CreateMutex和CreateEvent

HANDLE hMutex;  hMutex = ::CreateMutex(NULL, FALSE, NULL);  ::WaitForSingleObject(hMutex, INFI...
  • l5201314131413141314
  • l5201314131413141314
  • 2014年02月25日 11:03
  • 2812

CreateEvent,OpenEvent成功后 是否需要::CloseHandle(xxx); 避免句柄泄漏

bool bExist = false;         HANDLE hHandle = ::CreateEvent(NULL,  FALSE,  FALSE,  L"Global\\xxxxx_...
  • sundan308
  • sundan308
  • 2015年01月29日 11:00
  • 1926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CreateEvent的复习
举报原因:
原因补充:

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