在我的前個崗位,當端起這樣代碼對GNU/Linux时,我關於mutexes和可能的方式實施等效功能談論了使用WaitForSingleObject。 在這個崗位我在微軟視窗中將描述使用與事件對象的這API並且建議張貼這樣代碼可能的方式對GNU/Linux或Unix。
首先,在事件對象的一些背景。 事件對象是另外一種Windows仁調度員對象。 從prespective的編制程序,事件對象是濃縮一個或更多仁調度員對象,並且同步語義學通过WaitForSingleObject和它的表兄弟是容易接近的同步對象。 在指定时间同步對象nonsignaled或發信號,即對象可能只在二個可能的狀態之一中。
所有APIs WaitFor家庭包括在對象把柄的WaitForSingleobject直到一些指定的標準的等待或把柄遇見。 所有這些APIs的二個基本的標準是把柄它等待和一種超时价值對象的發信號的狀態在。 因而叫這API等待的螺紋,指定的對象进入發信號的狀態或指定的暫停到期了。 很少或沒有CPU時間,當這樣螺紋在等候状态时,使用。
在事件情況下, CreateEvent或OpenEvent退回把柄到事件對象。 當事件在發信號的狀態时意味着那事件有能力發布等待這個特殊事件的一個或更多螺紋發信號。 當事件在nonsignaled狀態它不會發布任何等待的螺紋。 最初事件的狀態nonsignaled。 事件對象的狀態明白地被設置對發信號由SetEvent或PulseEvent。 在事件對象狀態被設置對發信號由仁而不是由應用情況下,事件對象也用于被重疊的操作例如讀從插口。
事件也进來二個被重新設置的類型。 如果事件是手工重新設置事件,則等待那個事件,如果如此配置的所有WaitForSingleObjects回歸。 换句话说手工重新設置事件可能由一個或更多觸發行動WaitForSingleObject或它的表兄弟。 必须明白地重新設置手工重新設置事件對象的狀態到nonsignaled由ResetEvent。
對于自動復位事件對象, WaitForSingleObject和它是聯繫被重新設置的

























