事件
相关问题
程序之前的通知的问题
事件的使用
1.创建事件
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,//事件安全属性 (废弃的参数,设置NULL)
BOOL bManualReset,//事件的重置,或事件的复位方式,
BOOL bInitialState,//事件初始状态,TRUE有信号,FALSE无信号
LPCTSTR lpName //事件命名
);//创建成功返回事件句柄
bManualReset事件复位方式,参数有两个
TRUE-手动 程序员自己设置
FALSE-自动
bInitialState事件创建之初是否有信号
TRUE-创建时有信号
FALSE-创建时无信号
2.等候时间
WaitForSingleObject/WaitForMultipleObjects
3.触发事件(将事件设置成有信号状态)
BOOL SetEvent(
HANDLE hEvent//事件句柄
);
4.事件复位(将事件设置成没有信号状态)
BOOL ResetEvent(
HANDLE hEvent
)
5.关闭事件
CloseHandle
注意:小心事件的死锁
示例代码

//用ControlProc线程函数控制PrintProc函数打印
//每0.5秒打印一次
#include <Windows.h>
#include <stdio.h>HANDLE g_hEvent = 0;
DWORD g_nNumber = 0;DWORD CALLBACK PrintProc(LPVOID lpParam)
{while(1){WaitForSingleObject(g_hEvent,INFINITE);printf("print--------------%d\n",g_nNumber++);//ResetEvent(g_hEvent);   //手动复位}return 0;
}DWORD CALLBACK ControlProc(LPVOID lpParam)
{while(1){Sleep(500);SetEvent(g_hEvent);}return 0;
}int main()
{//g_hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); //程序员手动复位g_hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); //系统自动复位HANDLE hHandle[2] = {0};DWORD nThreadId[2] = {0};hHandle[0] = CreateThread(NULL,0,PrintProc,NULL,0,&nThreadId[0]);hHandle[1] = CreateThread(NULL,0,ControlProc,NULL,0,&nThreadId[1]);WaitForMultipleObjects(2,hHandle,TRUE,INFINITE);CloseHandle(g_hEvent);system("pause");return 0;
}

windows线程 事件CreateEvent、SetEvent、ResetEvent、CloseHandle相关推荐

  1. c++ 线程中CreateEvent SetEvent/ResetEvent WaitForSingleObject的使用

    HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,   // 安全属性 BOOL bManualReset,   // 复位方式, ...

  2. CreateEvent() SetEvent() ResetEvent() 进程互斥

    首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面. CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象. EVENT有两种状态 ...

  3. CreateEvent/SetEvent/ResetEvent和WaitForSingleObject

    1.CreateEvent 是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. 函功能描述:创建或打开一个命名的或无名的事件对象. HANDLE m_hExit; m_hExit= ...

  4. CreateEvent SetEvent ResetEvent

    CreatEvent():创建一个事件对象  SetEvent():把指定事件对象的状态设置为发信号状态 ResetEvent():把指定事件对象的状态设置为不发信号状态 函数CreateEvent创 ...

  5. Windows编程之CreateEvent,WaitForSingleObject,SetEvent,ResetEvent函数

    一 Windows编程之CreateEvent,WaitForSingleObject,SetEvent,ResetEvent函数 1 CreateEvent HANDLE WINAPI Create ...

  6. 线程中CreateEvent和SetEvent和ReSetEvent及WaitForSingleObject的用法

    概述 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. CreateEvent:创建或打开一个命名的或无名的事件对象. EVENT有两种状态:发信号 ...

  7. C++事件SetEvent,ResetEvent的使用

    一.概念 创建事件: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SECURITY_ATTRIBUTES结构指针,可 ...

  8. 转:线程中CreateEvent和SetEvent及WaitForSingleObject的用法

    转自线程中CreateEvent和SetEvent及WaitForSingleObject的用法 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. ...

  9. [转载]线程中CreateEvent和SetEvent及WaitForSingle

    原文地址:线程中CreateEvent和SetEvent及WaitForSingleObject的用法作者:Sky丶Nie 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判 ...

最新文章

  1. linux启动sql server数据库,SQL Server数据库启动过程详解及启动不起来的问题分析及解决方法...
  2. 人工智能——面向对象表示法
  3. flask处理cookie
  4. 常见网络命令介绍及使用
  5. 每天一个linux命令(56):netstat命令
  6. 干货:数据仓库架构及基础知识
  7. Easy Math(2018 ACM-ICPC 徐州赛区网络赛 D)
  8. u盘被保护怎样解除?(第十招)
  9. Django 博客开发教程 6 - 真正的 Django 博客首页视图
  10. 加速Qt在线更新--使用traefik-1.7.24(不支持traefik-2.0以上版本
  11. 使用 TensorFlow 做文本情感分析
  12. 随手记--关于K-近邻算法
  13. hadoop安装(超详细)
  14. cocos2dx +vs2012安装教程
  15. 记录switch sxos TF卡游戏损坏(纯粹记录,很潦草,多多包涵)
  16. python取前三位_python的字符串截取||取字符串前三位
  17. python参考文献及其出版社_参考文献查重-Python
  18. 如何创建mysql分区表_mysql分区表创建思路
  19. 【论文学习】7、ieee802.11ah中基于深度学习的载波频偏估计
  20. 对于 codec(编解码器) 和 container(容器) 的理解

热门文章

  1. 如何构建成功的微服务架构?带你洞悉微服务构建流程,以实战角度出发,详解微服务架构
  2. 多商户商城子商户推广员功能说明介绍
  3. 【MATLAB教程案例51~67总结】MATLAB人工智能类算法仿真经验和技巧总结
  4. switch三种的用法方式
  5. xbox键 禁用_如何在Windows 10上禁用Xbox成就通知
  6. Outlook2007设置POP3帐号
  7. Photoshop制作水墨荷花图
  8. Untitled Diagram绘画E-R图
  9. JETSON TX2 突然关机
  10. C++ Enum转字符串