Sunday, June 20, 2010

Windows Event的一些小地方

為了讓Echeneidae IDS能有更高的效能,所以必須用一些奇怪的方式使用Event這個同步物件,當然也必須更深入了解它的特性


CreateEvent中的bManualReset可以設定這個Event是要
手動用ResetEven設回未標記狀態(nonsignaled state),還是在經過WaitForSingleObject
之類的等待API後,自動設回未標記狀態(nonsignaled state),這其中有些有趣的問題


auto-reset
如果多個Process同時在等待一個Event,Event被設定為auto-reset
那麼當Event被標記時,會怎樣呢?


答案是,其中一個等待會被釋放,然後又被設回未標記狀態,其它的等待還是繼續等待


manual-reset
一樣是多個Process在等待一個Event,這次Event被設為手動設回未標記狀態,當Event被標記時,所有的等待都會釋放

No comments:

Post a Comment