Win32 API 多執行緒程式設計例程二

2021-06-05 22:30:21 字數 958 閱讀 6456

例程2 multithread2

該執行緒演示了如何傳送乙個乙個整型的引數到乙個執行緒中,以及如何等待乙個執行緒完成處理。

建立乙個基於對話方塊的工程multithread2,在對話方塊idd_multithread2_dialog中加入乙個編輯框和乙個按鈕,id分別是idc_count,idc_start ,按鈕控制項的標題為「開始」;

在multithread2dlg.h檔案中新增執行緒函式宣告:

void threadfunc(int integer);
注意,執行緒函式的宣告應在類cmultithread2dlg的外部。

在類cmultithread2dlg內部新增protected型變數:

handle hthread;

dword threadid;

分別代表執行緒的控制代碼和id。

開啟classwizard,為編輯框idc_count新增int型變數m_ncount。在multithread2dlg.cpp檔案中新增:

void threadfunc(int integer)

順便說一下waitforsingleobject函式,其函式原型為:
dword waitforsingleobject(handle hhandle,dword dwmilliseconds);
當在某一線程中呼叫該函式時,執行緒暫時掛起,系統監視hhandle所指向的物件的狀態。如果在掛起的dwmilliseconds毫秒內,執行緒所等待的物件變為有訊號狀態,則該函式立即返回;如果超時時間已經到達dwmilliseconds毫秒,但hhandle所指向的物件還沒有變成有訊號狀態,函式照樣返回。引數dwmilliseconds有兩個具有特殊意義的值:0和infinite。若為0,則該函式立即返回;若為infinite,則執行緒一直被掛起,直到hhandle所指向的物件變為有訊號狀態時為止。

本例程呼叫該函式的作用是按下idc_start按鈕後,一直等到執行緒返回,再恢復idc_start按鈕正常狀態。編譯執行該例程並細心體會。

Win32 API 多執行緒程式設計例程一

例程1 multithread1 建立乙個基於對話方塊的工程multithread1,在對話方塊idd multithread1 dialog中加入兩個按鈕和乙個編輯框,兩個按鈕的id分別是idc start,idc stop 標題分別為 啟動 停止 idc stop的屬性選中disabled 編輯...

多執行緒程式設計win32 API

win32 提供了一系列的api函式來完成執行緒的建立 掛起 恢復 終結以及通訊等工作。下面將選取其中的一些重要函式進行說明。1 handle createthread lpsecurity attributes lpthreadattributes,dword dwstacksize,lpthre...

win32 API實現多執行緒小例程

1.api函式 2.程式設計例項 void threadfunc 執行緒函式 static bool m brun 全域性變數 對話方塊類內 handle hthread 執行緒函式的控制代碼 dword threadid 執行緒函式的id 原始檔 類外新增 執行緒函式 void threadfun...