C++ 等待单对象函数的使用

C++ 等待单对象函数的使用,c++,waitforsingleobject,C++,Waitforsingleobject,我正在使用WaitForSingleObject()函数在程序中实现等待 WaitForSingleObject(eventToBeSigaled, timeOut); 我们都知道,这个函数在指定的时间内等待事件发出信号 但是我想知道,当事件在进入这个调用之前已经触发时,此时会发生什么情况,即等待将失败(wait_FAILED)?请用适当的理由回答这个问题。我想更深入地了解这一点。回答您的第一个问题:如果事件已经发出信号,您的Wait()将立即返回Wait\u对象0 第二个问题:WAIT\u

我正在使用
WaitForSingleObject()
函数在程序中实现等待

WaitForSingleObject(eventToBeSigaled, timeOut);
我们都知道,这个函数在指定的时间内等待事件发出信号


但是我想知道,当事件在进入这个调用之前已经触发时,此时会发生什么情况,即等待将
失败(wait_FAILED)
?请用适当的理由回答这个问题。我想更深入地了解这一点。

回答您的第一个问题:如果事件已经发出信号,您的
Wait()
将立即返回
Wait\u对象0

第二个问题:
WAIT\u FAILED
返回的情况之一是调用
WAIT()
时事件句柄是否关闭。在这种情况下,操作系统调度程序将无法处理
Wait()
调用,因此返回
Wait\u FAILED


请注意,在一天结束时,
Wait()
函数是用户线程将CPU传递回操作系统的一种方法,直到满足特定条件为止。根据需要,您可以使用一个操作系统原语作为条件(信号量、互斥、事件等)。操作系统调度程序依次检查此条件,以确定是否应为工作线程分配CPU时间片,从而确保所有线程(以及所有进程)都能公平地共享系统资源。

您应该先查看其文档

备注

WaitForSingleObject函数检查指定对象的当前状态。如果对象的状态为非信号状态,则调用线程将进入等待状态,直到对象发出信号或超时间隔结束。