假设我有一个手动事件句柄h
(使用CreateEvent
创建,手册)。
我的应用程序中有多个线程,某些线程可能正在等待此事件(WaitForSingleObject
,WaitForMultipleObject
)。
在我的应用程序中的某些时候,我想断言没有线程在等待这个句柄h
。
是否有Windows API函数告诉我当时是否有任何线程在等待事件h
?
答案 0 :(得分:1)
我不相信Windows API提供任何公开机制来提供该信息(线程是否在等待同步对象)。这是一个典型的应用程序不应该知道的东西,如果提供它可能会导致竞争条件。
例如,如果检查应用程序以验证没有线程正在等待然后根据它做出决定,则很容易出错,因为线程可能在下一个时钟周期中实际开始等待事件,因此检查后,信息将立即失效并可能出现错误。