VC建立執行緒

2021-06-25 10:52:06 字數 1187 閱讀 4987

方法二:使用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...