方法二:使用mfc全域性函式
cwinthread* afxbeginthread(( afx_threadproc pfnthreadproc, lpvoid pparam, int npriority = thread_priority_normal, uint nstacksize = 0, dword dwcreateflags = 0, lpsecurity_attributes lpsecurityattrs = null );
這個需要自定義 pfnthreadproc():uint mycontrollingfunction( lpvoid pparam );
及傳遞引數型別。。。。如果建立的是掛起執行緒,使用cwinthread->resumethread 執行
方法三:使用mfc全域性函式
cwinthread* afxbeginthread( cruntimeclass* pthreadclass, int npriority = thread_priority_normal, uint nstacksize = 0, dword dwcreateflags = 0, lpsecurity_attributes lpsecurityattrs = null );
這裡需要從cwinthread 類中派生自己的執行緒類cmywinthread ,
cruntimeclass *rc=runtime_class(cmywinthread)....利用返回cwinthread 物件的指標就可以對執行緒進行各種操作。
方法四:使用自己的執行緒類,並在堆中建立執行緒物件
class cmywinthread : public cwinthread,要在派生類中實現自己的虛函式 run()....
cmywinthread *mth = new cmywinthread()
mth->create(....) mth->resumethread()
dword winapi tbegin(lpvoid lpparameter)//執行緒呼叫
-----------
dword dwthreadid;//
handle h_handle;//執行緒
if((h_handle =createthread(null,0,tbegin,this,0,&dwthreadid))==null)
closehandle(h_handle);
--------------
VC中建立執行緒分析
1 createthread beginthreadex afxbeginthread的區別和正確使用 createthread是乙個windows 的api函式,beginthreadex是乙個微軟vc中c執行時庫中的執行緒建立函式,afxbeginthread則是mfc中的執行緒建立函式。其依賴...
vc 執行緒的建立,暫停和結束
1.執行緒的建立 1 cwinthread mainthread mainthread afxbeginthread mythread,this,thread priority normal,0,0,null 2 後台工作執行緒函式 uint mythread lpvoid pparam 3 fun...
vc 執行緒的建立 暫停和結束
1.執行緒的建立 1 cwinthread mainthread mainthread afxbeginthread mythread,this,thread priority normal,0,0,null 2 後台工作執行緒函式 uint mythread lpvoid pparam 3 fun...