检测是否有任何线程正在等待事件

时间:2011-07-18 16:34:43

标签: winapi

假设我有一个手动事件句柄h(使用CreateEvent创建,手册)。

我的应用程序中有多个线程,某些线程可能正在等待此事件(WaitForSingleObjectWaitForMultipleObject)。

在我的应用程序中的某些时候,我想断言没有线程在等待这个句柄h

是否有Windows API函数告诉我当时是否有任何线程在等待事件h

1 个答案:

答案 0 :(得分:1)

我不相信Windows API提供任何公开机制来提供该信息(线程是否在等待同步对象)。这是一个典型的应用程序不应该知道的东西,如果提供它可能会导致竞争条件。

例如,如果检查应用程序以验证没有线程正在等待然后根据它做出决定,则很容易出错,因为线程可能在下一个时钟周期中实际开始等待事件,因此检查后,信息将立即失效并可能出现错误。