函式原型:
handlewinapi createthread(
lpsecurity_attributes lpthreadattributes,
size_t dwstacksize,
lpthread_start_routine lpstartaddress,
lpvoid lpparameter,
dword dwcreationflags,
lpdword lpthreadid
);函式說明:
第乙個引數表示執行緒核心物件的安全屬性,一般傳入null表示使用預設設定。
第二個引數表示執行緒棧空間大小。傳入0表示使用預設大小(1mb)。
第三個引數表示新執行緒所執行的執行緒函式位址。
第四個引數是傳給執行緒函式的引數。
第五個引數指定額外的標誌來控制線程的建立,為0表示執行緒建立之後立即就可以進行排程,如果為create_suspended則表示執行緒建立後暫停執行,這樣它就無法排程,直到呼叫resumethread()。
第六個引數將返回執行緒的id號,傳入null表示不需要返回該執行緒id號。
函式返回值:
成功返回新執行緒的控制代碼,失敗返回null。
應該使用更優的函式_beginthreadex,_beginthreadex內部仍然呼叫createthread,但它會為每乙個執行緒建立各自己的私有資料,以便其安全的使用標準c庫(如errno等)。需要包含
a、執行緒自己主動return
b、執行緒自己呼叫void exitthread(dword dwexitcode)退出(優先選擇編譯器推薦的_endthread)
c、程序內的其它執行緒強制其它執行緒退出,呼叫bool terminatethread( handle hthread, dword dwexitcode);,通過呼叫waitforsingleobject等待執行緒終止,bool getexitcodethread( handle hthread, lpdword lpexitcode);獲取執行緒退出碼
Windows多執行緒程式設計
一 問題的提出 編寫乙個耗時的單執行緒程式 新建乙個基於對話方塊的應用程式singlethread,在主對話方塊idd singlethread dialog新增乙個按鈕,id為idc sleep six second,標題為 延時6秒 新增按鈕的響應函式,如下 void csinglethread...
windows多執行緒程式設計
程序 乙個執行的程式,記憶體,cpu時間等都歸程序所有.執行緒 cpu排程的最小單位,乙個程序內的多個執行緒共享4g記憶體.程式的乙個執行路徑 1.最基礎的使用方法.createthread,exitthread,closehand include include createthread,exit...
windows多執行緒程式設計2
強調 win32說明檔案一再強調執行緒分為gui執行緒和worker執行緒兩種。gui執行緒 負責建造視窗以及處理主訊息迴圈。worker 負責執行純粹運算工作,如重新 計算或重新編頁等等,它們會導致主線程的訊息佇列失去反應。一般而言,gui 執行緒絕不會去做那些不能夠馬上完成的工作。gui執行緒的...