cwinthread* afxbeginthread( afx_threadproc pfnthreadproc, lpvoid pparam, intnpriority = thread_priority_normal, uint nstacksize = 0, dword dwcreateflags= 0, lpsecurity_attributes lpsecurityattrs = null );
cwinthread* afxbeginthread( cruntimeclass* pthreadclass, int npriority = thread_priority_normal, uint nstacksize = 0, dword dwcreateflags = 0, lpsecurity_attributes lpsecurityattrs = null );
cwinthread *m_pthread = afxbeginthread(threadtest,0,thread_priority_highest,0,null);//呼叫測試執行緒
當線程彈出乙個對話方塊再做相關操作時有可能會卡死的情況,這時我們可以在建立執行緒時調整乙個執行緒的優先順序,或者使用:setthreadpriority指定優先順序。
boolsetthreadpriority(
handle hthread, // handle to the thread
int npriority // thread priority level
);功能說明
設定指定執行緒的優先順序
引數說明
執行緒優先順序等級
標誌
優先順序值
1
idle (最低)
thread_priority_idle
如果程序優先順序為realtime則調整為16,其它情況為1
2
lowest 低
thread_priority_lowest
-2(在原有基礎上-2)
3
below 低於標準
thread_priority_below_normal
-1(在原有基礎上-1)
4
normal(標準)
thread_priority_normal
不變(取程序優先順序值)
5
above 高於標準
thread_priority_above_normal
+1(在原有基礎上+1)
6
highest (高)
thread_priority_highest
+2(在原有基礎上+2)
7
critical(最高)
thread_priority_time_critical
如果程序優先順序為realtime則調整為31,其它情況為15
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...