《Win32多线程程序设计》(1)---WaitForSingleObject()

本文介绍了Win32多线程编程中的WaitForSingleObject()函数,阐述了核心对象的激发与未激发状态,并讨论了线程、进程、事件、互斥量等不同对象在状态变化时对线程等待的影响。详细解析了各种核心对象在不同状态下的行为和应用场景。
摘要由CSDN通过智能技术生成

//调用WaitForSingleO bject() 并放置一个“线程核心对象”作为参数,将
//使线程#1  开始睡眠,直到线程#2  结束为止。就像Sleep()  函数一样,
//WaitForSingleObject() 也有一个参数用来指定最长的等待时间

//DWORD WaitForSingleObject(
//    __in HANDLE hHandle,
//   __in DWORD dwMilliseconds
//    );
//参数
//hHandle  等待对象的handle(代表一个核心对象)。

//dwMilliseconds  等待的最长时间。时间终了,即使handle 尚未成为激发状态,此函数还是要返回。此值可以是0(代表立刻返回),也可以是INFINITE  代表无穷等待。 
//返回值
//如果函数失败,则传回WAIT_FAILED。这时候你可调用GetLastError() 取
//得更多信息。此函数的成功有三个因素:
//1. 等待的目标(核心对象)变成激发状态。这种情况下返回值将为
//WAIT_OBJECT_0。
//2. 核心对象变成激发状态之前,等待时间终了。这种情况下返回值将为
//WAIT_TIMEOUT。
//3. 如果一个拥有mu tex(互斥器)的线程结束前没有释放mu tex,则传
//回WAIT_ ABANDONED。
获得一个线程对象的handle  之后,WaitForSingleObject() 要求操作系统
让线程#1 睡觉,直到以下任何一种情况发生:
i 线程#2 结束
i dwMilliseconds 时间终了。该值系从函数调用后开始计算。
由于操作系统持续追踪线程#2,即使线程#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值