功能:该函数是Windows系统中功能非常强大的一个函数,几乎可以等待Windows系统中的所有内核对象

函数原型:

DWORD
WaitForMultipleObjects(
_In_ DWORD nCount,
_In_reads_(nCount) CONST HANDLE * lpHandles,
_In_ BOOL bWaitAll,
_In_ DWORD dwMilliseconds
);

nCount:指定列表中的句柄数量,最大值为MAXIMUM_WAIT_OBJECTS(64)

lpHandles:句柄数组的指针,HANDLE类型可以为(Event,Mutex,Process,Thread,Semaphore)数组

bWaitAll:等待的类型,如果为TRUE,表示除非对象都发出信号,否则就一直等待下去;如果为FALSE,表示任何对象发出信号即可

dwMilliseconds:指定要等候的毫秒数,如:为0,表示立即返回,为INFINITE,则可根据实际情况无限等待下去

返回值:

WAIT_ABANDONEN_0:所有对象都发出消息,而且其中有一个或多个属于互斥体(一旦又有他们的进程中止,就会发出信号)

WAIT_TIMEOUT:对象保持未发信号的状态,但规定的等待时间超过

WAIT_OBJECT_0:所有对象都发出信号(WAIT_OBJECT_0是微软定义的一个宏,就是一个数,例如:WAIT_OBJECT_0+5表示列表中的第5个对象发出了信号)

WAIT_IO_COMPLETION:(仅适用于WaitForMultipleObjectsEx)由于一个I/O完成操作已做好准备执行,所以造成函数的返回

WAIT_FAILED:函数执行失败,会设置GetLastError

转载于:https://www.cnblogs.com/chen-cai/p/9029795.html

函数WaitForMultipleObjects相关推荐

  1. WaitForSingleObject和WaitForMultipleObjects用法

    转自:http://www.360doc.com/content/10/0512/09/1072296_27178529.shtml 等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知 ...

  2. windows笔记-【内核对象线程同步】等待函数

    等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止.   WaitForSingleObject 函数 DWORD WaitForSingleObject( HANDLE hO ...

  3. WaitForMultipleObjects的疑惑

    WaitForMultipleObjects 函数貌似在许多系统中都会用到,四极管看得云里雾里的,知道怎么用,但是具体是怎么运行的,还是不知,先记下大家的见解,以后自己慢慢在项目中理解,也希望能有大牛 ...

  4. 四极管:WaitForMultipleObjects的疑惑

    WaitForMultipleObjects 函数貌似在许多系统中都会用到,四极管看得云里雾里的,知道怎么用,但是具体是怎么运行的,还是不知,先记下大家的见解,以后自己慢慢在项目中理解,也希望能有大牛 ...

  5. linux 等待子线程退出,等待一组子线程退出的问题__线程_pthread_join_终止_pthread_detach_释放__169IT.COM...

    请问 Windows下的函数 WaitForMultipleObjects()----等待一组线程的函数 在Linux下如何实现呢? --------------------------------- ...

  6. 线程与内核对象的同步——Windows核心编程学习手札之九

    线程与内核对象的同步 --Windows核心编程学习手札之九 用户方式下的线程同步机制具有速度快的特点,但有其局限性,对于许多应用程序来说,并不合适.例如,互锁函数家族只能在单值上运行,根本无法使线程 ...

  7. WinSock三种选择I/O模型

    在<套接字socket及C/S通信的基本概念>和<WinSock编程基础>中,我们介绍了套接字的基本概念和WinSock API的基本调用规范.我们讨论了阻塞模式/非阻塞模式和 ...

  8. C++多线程编程(入门实例)

    多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平. 其实C++语言本身并没有提供多线程机制(当然目前C++ 11 ...

  9. C++实现U盘小偷(超详细版)

    文章目录 前言 一.程序演示 二.项目下载 三.源代码 四.代码解析 1.main函数 2.RegisterGlobalKey与UnRegistreGlobalKey函数 3.DealMsg函数 4. ...

最新文章

  1. mysql主键自增长空缺_Mysql 主键自增长auto_increment问题分析
  2. R,Git和Github(下)
  3. IBM Rev2.6公包主板的问题
  4. 根据输入的日期计算你活了多少天(新手)
  5. 一起学nRF51xx 6 - uart
  6. Oracle 备份与恢复学习笔记(6_1)
  7. mysql 创建定时器
  8. 计算机技能节活动作文,技能节感想作文
  9. 使JavaDoc保持最新状态的工具
  10. dw相对路径怎么改_密云ETL怎么收费
  11. 【pyQT5】Python3+pyQT5开发环境安装与配置
  12. 关于xcode6打包以及上线前企业部署测试的说明 --转自张诚教授微博
  13. 【STM32】关于BOOT引脚和一键下载电路下载的一些事
  14. Vue项目webpack打包部署到Tomcat,刷新报404错
  15. ndows外壳公用dll,Windows外壳公用DLL已停止工作
  16. Spring源码下载---导入到Idea
  17. 《因果推理原理:基础与学习算法》第一章 因果模型和统计模型
  18. amd服务器开启虚拟化技术,在AMD平台上实现KVM虚拟化技术
  19. /分数化简和加减乘除
  20. 谷歌Chrome浏览器如何开启无痕模式 Chrome浏览器无痕模式开启方法

热门文章

  1. 机器学习 - [源码实现决策树小专题]决策树中混杂度数值度量的Python编程实现(信息熵和基尼系数的计算)
  2. L2-018 多项式A除以B(模拟)
  3. 耐克人脸识别_人脸识别首案宣判,当人脸识别遇上面试,将碰出怎样的火花?...
  4. 2.C++深入理解 面向对象部分1
  5. java 守护线程 作用_java中守护线程的一些概念和用法
  6. python︱用asyncio、aiohttp实现异步及相关案例
  7. Spring 的学习
  8. Volatile(理解)
  9. html更改弹窗样式(原创,转载需声明)
  10. Django的url别名功能的使用