2011-07-18 27 views
2

假設我有一個手動事件句柄h(使用CreateEvent手冊創建)。檢測是否有線程正在等待事件

我的應用程序中有幾個線程,某些線程可能正在等待此事件(WaitForSingleObjectWaitForMultipleObject)。

在我的應用程序的特定時間,我想斷言沒有線程正在等待這個句柄h

是否有Windows API函數告訴我是否有任何線程在那個時間等待事件h

回答

1

我不相信Windows API提供了任何用於發佈該信息的公共機制(無論線程是否正在等待同步對象)。這是典型的應用程序不需要知道的東西,並且如果提供的話可能會導致競爭條件。

例如,如果應用程序檢查以確認沒有線程正在等待,然後基於此做出決定,則很可能是錯誤的,因爲線程可能在下一個時鐘週期實際上開始等待事件,所以信息在檢查後立即失效並可能出錯。