1. 程式人生 > >Windows API一日一練(45)CreateEvent和SetEvent函式

Windows API一日一練(45)CreateEvent和SetEvent函式

當你建立一個執行緒時,其實那個執行緒是一個迴圈,不像上面那樣只執行一次的。這樣就帶來了一個問題,在那個死迴圈裡要找到合適的條件退出那個死迴圈,那麼是怎麼樣實現它的呢?在Windows裡往往是採用事件的方式,當然還可以採用其它的方式。在這裡先介紹採用事件的方式來通知從執行緒執行函式退出來,它的實現原理是這樣,在那個死迴圈裡不斷地使用WaitForSingleObject函式來檢查事件是否滿足,如果滿足就退出執行緒,不滿足就繼續執行。當線上程裡執行阻塞的函式時,就需要在退出執行緒時,先要把阻塞狀態變成非阻塞狀態,比如使用一個執行緒去接收網路資料,同時使用阻塞的SOCKET時,那麼要先關閉SOCKET
,再發送事件訊號,才可以退出執行緒的。下面就來演示怎麼樣使用事件來通知執行緒退出來。