WaitForSingleObject函式的使用

2021-04-13 04:35:51 字數 714 閱讀 5333

程式舉例:

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提供了許多核心物件來實現執行緒的同步。對於執行緒同步而...