WaitForSingleObject 简单的说,这个函数在多线程中可以起到阻塞线程的作用,但其实这个函数有很多用处!
参数
hHandle[in]对象句柄。可以指定一系列的对象,如Event、Job、Memory resource notification、Mutex、Process、Semaphore、Thread、Waitable timer等。
dwMilliseconds[in]定时时间间隔,单位为milliseconds(毫秒).如果指定一个非零值,函数处于等待状态直到hHandle标记的对象被触发,或者时间到了。如果dwMilliseconds为0,对象没有被触发信号,函数不会进入一个等待状态,它总是立即返回。如果dwMilliseconds为INFINITE,对象被触发信号后,函数才会返回。
WaitForSingleObject 异常怎么捕获
OnClose中的 WaitForSingleObject 这种做法是不可行的。
因为在程序到达OnClose的时候,已经向子线程发送了结束消息,线程已经结束或者进入锁状态,WaitFor不会对锁进程和已结束进程有正确反应,因此需要在wait之前先判断进程的合法性和状态,或者只等待指定的时间而不是INFINITE

异常应该在线程的执行代码中捕获,在WaitForSingleObject当然无法捕获异常。
WaitForSingleObject函数等待线程处理完毕。
如果传入一个0值,则表示超时,这将令WaitForSingleObject马上返回,
并且指出线程是否已经完成。如果线程没有完成,WaitForSingleObject返回WAIT_TIMEOUT。
因而它只能告诉你操作是否完成或超时,你要捕捉错误,应该在线程中
以上就是关于多线程中WaitForSingleObject 这个函数做什么用的全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!











