CreateEvent/OpenEvent/SetEvent/ResetEvent/WaitForSingleObject 相关用法说明

c++ 多线程 事件EVENT 事件是内核对象。 阅读详情

CreateEvent 创建一个事件

 

  1. HANDLE WINAPI CreateEvent(     
  2.   __in_opt  LPSECURITY_ATTRIBUTES lpEventAttributes,  //如果为空handle不能被子进程继承   
  3.   __in BOOL bManualReset,       //如果为true,需要手动ResetEvent     
  4.   __in BOOL bInitialState,      //初始状态     
  5.   __in_opt  LPCTSTR lpName      //事件的名称,可以为空,如果跨进程则为Global//xxxEvent形式     
  6.  );  

 

 

  

OpenEvent打开一个已存在的事件,其目的是获取句柄

 

  1. HANDLE WINAPI OpenEvent(   
  2.   __in  DWORD dwDesiredAccess,         //一般用EVENT_ALL_ACCESS      
  3.   __in  BOOL bInheritHandle,   
  4.   __in  LPCTSTR lpName   
  5. );  

 

 

SetEvent 设置事件为true

  1. BOOL WINAPI SetEvent(   
  2.   __in  HANDLE hEvent   
  3. );  

 

 

ResetEvent设置事件为false,如果CreateEvent 的bManualReset 为FALSE,则不需要调用

  1. BOOL WINAPI ResetEvent(   
  2.   __in  HANDLE hEvent   
  3. );  

 

 

WaitForSingleObject 等待一个对象
 

  1. DWORD WINAPI WaitForSingleObject(   
  2.   __in  HANDLE hHandle,          //对象的句柄   
  3.   __in  DWORD dwMilliseconds     //等待时间,INFINITE(0xFFFFFFFF)为无限等待   
  4. );  

 

相关推荐

VCSA 6.7证书更新全流程指南:从故障诊断到完整替换

本文详细介绍了VCSA 6.7证书更新的全流程,包括故障诊断、证书替换操作步骤及常见问题解决方案。通过使用官方脚本和证书管理器,帮助管理员快速解决证书过期问题,确保vCenter系统的稳定运行。特别强调了STS证书修复和全量证书重置的关键步骤,适用于vcsa6.7环境下的证书管理需求。

weixin_42634811的博客 450

OpenEvent的使用注意点

我的测试代码如下 [code="C++"] HANDLE hTest = CreateEvent(NULL, FALSE, FALSE, "Global\\Hello"); //Handle 1 HANDLE hGetEvent1 = OpenEvent(EVENT_ALL_ACCESS, FALSE, "Global\\Hello"); //Handle 2 HA...

Jacky_Dai的专栏 5136

芯片封装、功率密度提升及热管理系统优化三个维度分析高功率芯片散热技术挑战

本文探讨高功率芯片散热技术挑战与创新。随着新能源汽车MOSFET用量增至400颗/车,文章聚焦封装技术创新(双面散热、集成模块)、功率密度提升(SGT-MOSFET优化)和热管理系统协同优化三大方向。通过热仿真案例(如CPO散热优化)展示温升改善方案,强调需协同器件级设计、系统级仿真与先进封装技术(混合键合/玻璃基板)来解决高密度互连与散热矛盾,为功率密度跃升提供技术支撑。

莱歌数字的博客 1473

OpenEvent的使用

vista系统,OpenEvent函数调用,返回NULL调查 收藏 一个app,一个service.service端使用CreateEvent创建一个Event,app程序使用OpenEvent来获得被service...

weixin_33872566的博客 2940

ArcGIS渔网分割实战:用Create Fishnet快速生成1km×1km网格(附GDP数据分析案例)

本文详细解析了ArcGIS中Create Fishnet工具在渔网分割中的应用,从基础操作到GDP空间分析全流程。通过1km×1km网格的创建与优化,实现经济数据的空间标准化和可视化表达,解决数据融合与分析的三大核心痛点。

weixin_29250403的博客 295

MTK Sensor驱动调试实战:从AP到SCP的完整流程解析

本文详细解析了MTK平台Sensor驱动从AP侧到SCP侧的完整调试流程。内容涵盖AP侧驱动集成、DTS配置、内核编译与验证,以及SCP侧Tinysys框架下的代码集成、Overlay配置与I2C设置等核心步骤,并分享了中断唤醒、功耗优化及传感器数据校准等实战经验与常见问题排查方法,为硬件驱动工程师提供了一份全面的实战指南。

weixin_29175469的博客 353

Windows 事件基础知识

Windows 事件基础知识 相关函数: CreateEvent:创建Event 例子: HANDLE Hev; Hev = CreateEvent(NULL, TRUE, FALSE, NULL); NULL:安全控制,一般传入NULL值 TRUE:TRUE代表手动置位,即调用WaitForSingleObject()后事件一直保持触发状态。FALSE代表自动置位,即调用WaitForSingl...

kaikai45的博客 1076

【教程4>第10章>第13节】基于FPGA的图像双边滤波开发——单通道双边滤波Verilog实现

本文介绍了基于Vivado 2022.2的单通道高斯滤波FPGA实现方案。主要内容包括:1)采用3×3窗口像素提取、高斯权值计算、exp指数运算等模块构建双边滤波系统;2)详细分析了Verilog HDL实现的顶层设计文件,包含窗口数据生成、指数计算、混合权重、归一化处理等关键模块;3)展示了图像双边滤波器的RTL结构图。该设计为后续实现RGB三通道图像高斯滤波及MATLAB联合仿真奠定了基础。

FPGA/MATLAB学习教程/源码/项目合作开发 262

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

今天看别人的代码,注意到在操作事件对象时如下: sprintf(cTemp,"Global\\EVENT_%s",lpFileName); m_hMapEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,cTemp); 注意到了没有,事件对象名称前面加了个Global,开始以为这个Global是任意加的,可以随便改成其他字符,后来经过查阅msdn和goo

物知馆 1万+

Himall商城ExpressDaDaHelper 取消订单(线上环境)

Himall商城ExpressDaDaHelper 取消订单(线上环境)

GZM888888的博客 399

11、基于拓扑质心和树编辑距离的RNA二级结构比较方法

本文介绍了一种基于拓扑质心和树编辑距离的RNA二级结构比较方法,特别适用于处理具有假结结构的RNA。通过PEELING算法识别拓扑质心并将其转换为树结构,结合树编辑距离进行高效比较,并提供工具planeGraph2tree实现该方法。博文详细描述了方法原理、操作流程以及应用示例,展示了其在功能性非编码RNA分析中的实用性。

resnet7explorer的博客 111

多线程相关------事件Event

Event可以实现不同进程中的线程同步. 相关函数: CreateEvent创建或打开一个事件对象 HANDLE WINAPI CreateEvent( _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ BOOL bManualReset, _In_ ...

228

Centos7 yum 报错「Errno 256」No more mirrors to try 解决方法

首先该问题的出现是由于网络的震荡导致,这是重点。(1)将源更换成阿里云的官方源,步骤参考如上(2)同时将zabbix的官方源更换成阿里云里面的zabbix镜像源,因为zabbix官方源根本网络不通,因为国家防火墙的拦截,导致网络不通。这是阿里源的zabbix镜像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/修改系统中早期生成的zabbix.repo文件,如下:主要是把baseurl替换成阿里云的zabbix镜像地址即可。

专注基础架构领域 3873

Windows编程之双进程守护

Windows编程之双进程守护Windows编程之双进程守护 需求分析 设计原理 相关函数 设计详细 方法1 方法2 项目测试情况 方法1 方法2 总结 需求分析设计实现双进程守护程序,当两个进程同时运行时,关闭其中任意一个,另一个进程会识别出来并马上打开被关闭的进程。设计原理相关函数CreateEvent( ) CreateEvent是一个Windows API函数。它用来创建或打开一个命名的或

Birldlee的博客 6077

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenEvent返回内存无法访问、共享内存无法使用

转载请标明是引用于 http://blog.youkuaiyun.com/chenyujing1234  欢迎大家拍砖  一、OpenEvent返回内存无法访问 1、问题描述 在winlogon.exe调用的gina.dll里创建一个线程,在线程里创建事件: DWORD WINAPI CXRedGinaApp::XRedMonitorProc(LPVOID pParam) { HWND

chenyujing1234的专栏 3442

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

nginx启动失败(bind() to 0.0.0.0:80 failed,An attempt was made to access a socket in ...)

nginx 不能启动,报错如下 该错误 实在 nginx 的 logs 下的 errorr.log 中查看 2018/12/24 10:29:15 [emerg] 14940#3232: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its acces...

palmer_kai的博客 9743

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Windows线程同步之事件(Event)

windows线程同步之事件对象(Event) 设置为有信号状态SetEvent() 设置为无信号状态ResetEvent() 发送信号脉冲PulseEvent() 打开已存在的命名对象OpenEvent() 关闭事件对象CloseEvent() 等待信号为有信号或超时WaitForSingleObject() 创建或打开事件对象CreateEvent() Event是windows的核心对象之一,不仅可以实现单个进程中的线程之间的同...

沉默、凝视的博客 1752

OpenEvent

函数功能 打开一个已经存在的命名事件对象 函数原型 HANDLE  OpenEvent( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName ); 参数说明 dwDesiredAccess 【in】指定对事件对象的请求访问权限,如果安全描述符指定的对象不允许要求通过对调用该函数的

danelumax2的专栏 3858

总结应用和驱动之间用事件通讯的办法

1. 驱动中IoCreateNotificationEvent,KeClearEvent 应用中OpenEvent(SYNCHRONIZE, FALSE, EVENT_NAME) 这样,只能在应用中WaitForSingleObject,而不能SetEvent,ResetEvent 驱动中可以KeSetEvent,(而且必须紧接着KeClearEvent,因为在应用中不能修改...

weixin_30906671的博客 303

【C语言】Windows下的多线程编程-事件

事件Event上是个内核对象,它的使用非常方便。下面列出一些常用的函数。 CreateEvent创建事件 /** \brief 创建事件 * * \param lpEventAttributes 表示安全控制,一般直接传入NULL * \param bManualReset 确定事件是手动置位还是自动置位,传入TRUE表示手动置位,传入FALSE表示自动置位。 * 如果为自动置位,则对该事件调用WaitForSingleObject()后会自动调用ResetEvent()使事件变成未

熠熠L的博客 820

多线程同步(Windows)

参考博客 关于线程同步 线程间通信的基本同步:互斥\color{red}{互斥}互斥和同步\color{red}{同步}同步。 线程同步:指线程间所具有的一种制约关系,即某个线程的执行依赖于另一个线程的消息或执行结果,在它没有得到另一个线程的消息前会一直等待,直接消息到达时才被唤醒。 线程互斥:指对于共享的操作系统资源(指的是广义的”资源”,而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其

JMaliex 881

事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(下)

注意:当WaitForMultipleObjects等待多个内核对象的时候,如果它的bWaitAll 参数设置为false。其返回值减去WAIT_OBJECT_0 就是参数lpHandles数组的序号。如果同时有多个内核对象被触发,这个函数返回的只是其中序号最小的那个。 如果bWaitAll 为TRUE 则等待所有信号量有效在往下执行。(FALSE 当有其中一个信号量有效时就向下执行) 问题就...

believe_s的博客 2129

windows 内核对象事件量 CEvent

Event是windows操作系统的一种内核对象,它可以用于进程间同步和线程间同步。

baidu_16370559的博客 673

windows多线程同步--事件

推荐参考博客:秒杀多线程第六篇 经典线程同步 事件Event 事件是内核对象,多用于线程间通信,可以跨进程同步 事件主要用到三个函数:CreateEvent,OpenEvent,SetEvent,ResetEvent 本文地址 CreateEvent 函数功能...

weixin_34216107的博客 179

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

bool bExist = false; HANDLE hHandle = ::CreateEvent(NULL, FALSE, FALSE, L"Global\\xxxxx_name"); if (hHandle && ERROR_ALREADY_EXISTS == GetLastError()) { bExist = true; ...

weixin_34335458的博客 753
上一篇: Error "Input Error: There is no script engine for file extension ".JS"
下一篇: How to change the name in open with list / File association.
studious_cat
博客等级 码龄17年 14粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studious_cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值