AfxBeginThread 的使用方法引數介紹

2021-10-04 20:50:29 字數 1381 閱讀 7941

使用者介面執行緒和工作者執行緒都是由afxbeginthread建立的,mfc提供了兩個過載版的afxbeginthread,乙個用於使用者介面執行緒,另乙個用於工作者執行緒。

使用者介面執行緒的afxbeginthread:

cwinthread* afxapi afxbeginthread(

afx_threadproc pfnthreadproc,

lpvoid pparam,

int npriority,

uint nstacksize,

dword dwcreateflags,

lpsecurity_attributes lpsecurityattrs= null

1.第1個引數afx_threadproc pfnthreadproc為執行緒呼叫函式名稱。afx說明是個全域性函式,為了方便以後定義的時候,直接定義為static uint jisuan(lpvoid lpparam)靜態函式就行。

idle (最低)

thread_priority_idle

如果程序優先順序為realtime則調整為16,其它情況為1

lowest 低

thread_priority_lowest

-2(在原有基礎上-2)

below 低於標準

thread_priority_below_normal

-1(在原有基礎上-1)

normal(標準)

thread_priority_normal

不變(取程序優先順序值)

above 高於標準

thread_priority_above_normal

+1(在原有基礎上+1)

highest (高)

thread_priority_highest

+2(在原有基礎上+2)

critical(最高)

thread_priority_time_critical

如果程序優先順序為realtime則調整為31,其它情況為15

4.第4個引數nstacksize:  以位元組為單位指定新執行緒的堆疊大小。如果為0,則與建立它的執行緒的堆疊大小相同。

5.第5個引數dwcreateflags:指定乙個額外的標誌控制線程的產生。它可以包括下面兩個值中的個:create_suspended:以掛起模式開始執行緒,並且指定掛起次數.當呼叫resumethread時,這個執行緒才會被執行。0 :建立之後,馬上執行執行緒。

6.第6個引數lpsecurityattrs 預設為null就行。

建立執行緒後,如果成功則會返回cwinthread* pthread的變數。這個變數可用於對執行緒的控制,如果要暫停執行緒:pthread->suspendthread();如果要繼續執行緒pthread->resumethread();

AfxBeginThread 幹了什麼?

跟一跟afxbeginthread的原始碼就可以很容易的發現,它呼叫了 beginthreadex,注意這傢伙傳遞的可不是你傳進去的函式函式指標,它傳的是 afxthreadentry和乙個 afx thread startup的結構,那我們的函式指標和引數呢?哦,原來都被封裝到 afx threa...

AfxBeginThread函式初探

在進行多執行緒程式設計的時候,我們經常用到afxbeginthread函式來啟動一條執行緒 該函式使用起來非常的簡單方便,其定義如下 cwinthread afxbeginthread afx threadproc pfnthreadproc,執行緒函式位址 lpvoid pparam,執行緒引數 ...

AfxBeginThread建立執行緒

使用者介面執行緒和工作者執行緒都是由afxbeginthread建立的。mfc提供了兩個過載版的afxbeginthread,乙個用於使用者介面執行緒,另乙個用於工作者執行緒,分別有如下的原型 使用者介面執行緒的afxbeginthread的原型如下 cwinthread afxapi afxbeg...