程式舉例:
1、建立對話方塊應用程式,專案名稱為mytestthread
2、新增按鈕,命名為啟動和停止,在對話方塊中增加編輯框,id為idc_time,
3、增加成員變數,handle m_hthread[2],此為執行緒的控制代碼;
4、定義全域性變數,用來控制線程的執行與否;
volatile bool m_threadrun[2];
5、增加全域性事件物件,用來監控執行緒,控制線程是否執行。
cevent event;
注意:4、5定義的物件,必須在.cpp檔案中定義;
6、宣告**函式。**函式必須是全域性函式或靜態函式。宣告方式如下:
void threadfunc1(lpvoid pparam);
void threadfunc2(lpvoid pparam);
**函式的實現如下:
void threadfunc1(lpvoid pparam) }
void threadfunc2(lpvoid pparam) }
7、定義儲存執行緒id的成員變數:dword m_threadid[2];
8、對啟動和停止按鈕增加訊息響應函式,如下:
void cmytestthreaddlg::onbnclickedok()
void cmytestthreaddlg::onbnclickedcancel()
編譯執行,設定斷點,可以檢視運**況。
WaitForSingleObject的通俗講解!
用最簡單的語言說就是這個物件有兩個狀態比如我們稱0和1,稱什麼一點也不重要,有訊號和無訊號就是相對的兩個狀態,沒什麼意義,你就認為乙個狀態是0另乙個狀態是1。在程式裡如果加了waitforsingleobject,那麼程式到這裡就去檢測你給他的那個控制代碼的狀態,如果是0程式就停在這裡了,如果是1,...
WaitForSingleObject的詳細用法
在多執行緒的情況下,有時候我們會希望等待某一線程完成了再繼續做其他事情,要實現這個目的,可以使用windows api函式waitforsingleobject,或者waitformultipleobjects。這兩個函式都會等待object被標為有訊號 signaled 時才返回的。那麼,訊號是什...
WaitForSingleObject的詳細用法
使用者模式的執行緒同步機制效率高,如果需要考慮執行緒同步問題,應該首先考慮使用者模式的執行緒同步方法。但是,使用者模式的執行緒同步有限制,對於多個程序之間的執行緒同步,使用者模式的執行緒同步方法無能為力。這時,只能考慮使用核心模式。windows提供了許多核心物件來實現執行緒的同步。對於執行緒同步而...