SetEvent與PulseEvent區別

 系統核心對象中的Event事件對象,在進程、線程間同步的時候是比較常用,發現它有兩個觸發函數,一個是SetEvent,還有一個PulseEvent,兩者的區別是:

SetEvent和PulseEvent都是將指定的事件設爲有信號狀態。不同的是如果是一個人工重設事件,正在等候事件的、被掛起的所有線程都會進入活動狀態,函數隨後將事件設回,並返回;如果是一個自動重設事件,則正在等候事件的、被掛起的單個線程會進入活動狀態,事件隨後設回無信號,並且函數返回。

也就是說在自動重置模式下PulseEvent和SetEvent的作用沒有什麼區別,但在手動模式下PulseEvent就有明顯的不同,可以比較容易的控制程序是單步走,還是連續走。如果讓循環按要求執行一次就用PulseEvent,如果想讓循環連續不停的運轉就用SetEvent,在要求停止的地方發個ResetEvent就OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章