gpt4 book ai didi

c++ - win32 : Get the state of an event object

转载 作者:行者123 更新时间:2023-11-30 02:12:55 25 4
gpt4 key购买 nike

我正在使用以下函数创建 3 个事件:

HANDLE WINAPI CreateEvent(...);

我正在等待所有(bWaitAll 设置为TRUE)事件对象或超时:

DWORD WINAPI WaitForMultipleObjects(...); 

返回值为:

WAIT_TIMEOUT

是否有一种简单的方法来检查每个事件以找到未设置的事件?

举个例子:

HANDLE evt1 = ....
HANDLE evt2 = ....
HANDLE evt3 = ....

HANDLE evts[3] = ....

DWORD ret = ::WaitForMultipleObjects(3, evts, TRUE, 10000);

10 秒后:

  • 'ret' 是 WAIT_TIMEOUT。
  • evt1 已设置
  • 未设置 evt2
  • evt3 已设置

返回值告诉我“超时间隔已过,不满足 bWaitAll 参数指定的条件。”,但没有告诉我哪个发出了信号,哪个没有发出信号。

谢谢,

最佳答案

是的,在 WaitForMultipleObjects() 返回调用 WaitForSingleObject() 后指定零超时的每个事件。

它将为未发出信号的事件返回 WAIT_TIMEOUT,为发出信号的事件返回 WAIT_OBJECT_0。不要忘记检查 WAIT_FAILED。

与 WaitFormmultipleObjects() 返回时的状态相比,每个事件状态肯定都发生了变化。

关于c++ - win32 : Get the state of an event object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1277917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com