Signle-object Wait Functions

Signle-object Wait Functions共三个分别是:

DWORD WaitForSingleObject(
  HANDLE hHandle,  // 对象句柄
  DWORD  dwMilliseconds // 定时时间间隔,单位为milliseconds(毫秒)
);

DWORD WaitForSingleObjectEx(
  HANDLE hHandle,  // 对象句柄
  DWORD  dwMilliseconds, // 定时时间间隔,单位为milliseconds(毫秒)
  BOOL   bAlertable
);

DWORD SignalObjectAndWait(
  HANDLE hObjectToSignal, // 
  HANDLE hObjectToWaitOn, // 
  DWORD  dwMilliseconds,
  BOOL   bAlertable
);

hHandle对象句柄可以指定一系列的对象,如Event、Job、Memory resource notification、Mutex、Process、Semaphore、Thread、Waitable timer等。当同步对象的状态变为signaled或者设置的等待时间到了,函数就会返回。

dwMilliseconds定时时间间隔,如果dwMilliseconds为0,对象没有被触发信号,函数不会进入一个等待状态,它总是立即返回。如果dwMilliseconds为INFINITE,对象被触发信号后,函数才会返回。

bAlertable,如果此参数为true,且线程处于等待状态,则当系统存在排队的I/O例程或APC时,该线程运行该I/O例程或APC并返回。否则,函数将不返回。

SignalObjectAndWiat功能比较强大,能够以原子的方式,设置第一个同步对象为signaled,并等待另外一个同步对象。

返回值:

状态 意义
WAIT_ABANDONED 当hHandle为mutex时,如果拥有mutex的线程在结束时没有释放核心对象会引发此返回值。
WAIT_OBJECT_0 指定的对象出有有信号状态
WAIT_TIMEOUT 等待超时
WAIT_FAILED 出现错误,可通过GetLastError得到错误代码

Demo:
svn://gitee.com/sudaidai/Knowledge_List_of_C
文件夹路径:WindowsAPI/Wait Functions/Signle-object

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,967评论 0 38
  • 一、进程和线程 进程 进程就是一个执行中的程序实例,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。...
    阿敏其人阅读 2,626评论 0 13
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,515评论 1 15
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 3,007评论 1 18
  • Be more stronger 发表于 网易博客 2010-01-23 21:50:02 Yes, I am w...
    光辉岁月无声阅读 390评论 0 0