Win 32 多线程程序设计学习笔记之三:*WaitFor*Object函数

本文详细介绍了Win32多线程程序设计中的WaitForSingleObject函数,包括等待线程结束、核心对象的激发状态及其意义,如线程、进程、事件、互斥体和信号量等。
摘要由CSDN通过智能技术生成

1.等待一个线程的结束

DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);

参数
hHandle: 等待对象的 handle(代表一个核心对象)。在本例中,此为线程 handle。
dwMilliseconds :等待的最长时间。时间终了,即使 handle 尚未成为激发状态,此函数还是要返回。此值可以是 0
                   (代表立刻返回),也可以是 INFINITE 代表无穷等待。

返回值

如果函数失败,则传回WAIT_FAILED。这时候你可调用 GetLastError() 取得更多信息。此函数的成功有三个因素:
1. 等待的目标(核心对象)变成激发状态。这种情况下返回值将为WAIT_OBJECT_0。
2. 核心对象变成激发状态之前,等待时间终了。这种情况下返回值将为WAIT_TIMEOUT。
3. 如果一个拥有 mutex(互斥器)的线程结束前没有释放 mutex,则传回 WAIT_ABANDONED。


        关于 time-out,有一个特别重要的用途,但很少被人注意。设定 time-out为 0,使你能够检查 handle 的状态并立刻返回,没有片刻停留。如果 handle已经备妥,那么这个函数会成功并传回 WAIT_OBJECT_0。否则,这个函数立刻返回并传回 WAIT_TIMEOUT。

        

        WaitForSingleObject() 可以面对许多种 handles 工作,不一定要是本例所使用的线程 handle。事实上,Win32 中大部分以 HANDLE 表示的对象都能够作为 WaitForSingleObject() 的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值