MFC建立執行緒函式及引數的使用

2021-07-04 03:45:43 字數 1581 閱讀 2292

1、用

createthread產生乙個執行緒

執行緒函式:

dword

winapi

ceventdlg

::threadproc2

(lpvoid

lpparameter

// thread data

)並在標頭檔案中新增:

staticdword

winapi

threadproc2(

lpvoid

lpparameter

// thread data

);//宣告為靜態的成員函式

建立執行緒: //

pclientinfo為待傳遞的引數

htread2=createthread(null,0,threadproc2,pclientinfo,0,null);

closehandle(htread2);

宣告需要傳遞的引數:

struct

clieninfo ;

clieninfoinfo;

clieninfo*pclientinfo=new

clieninfo;//定義乙個結構體指標,並分配記憶體空間 在

oninitdialog 中 給結構體賦值:

pclientinfo->a=1;

pclientinfo->b=0.1;

在實現函式裡:

dword

winapi

ceventdlg

::threadproc2

(lpvoid

lpparameter

// thread data)

2 、用

afxbeginthread

產生乙個執行緒

cwinthread* afxbeginthread( afx_threadprocpfnthreadproc, lpvoidpparam, intnpriority= thread_priority_normal, uintnstacksize= 0, dworddwcreateflags= 0, lpsecurity_attributeslpsecurityattrs=null );

後面的為預設值null;

cwinthreadpthread;

pthread=afxbeginthread(threadfunc,&info);  //開啟執行緒

//傳遞引數:

structthreadinfo ;

info.nmillisecond=m_nmillisecond;

info.pctrlprogress=&m_ctrlprogress;

//實現函式:

uintthreadfunc(lpvoidlpparam);

uintthreadfunc(lpvoidlpparam)

return 0; }

MFC 如何使用執行緒函式。

1.新建對話方塊程式 假如你的工程名叫child 在public中定義執行緒函式 static uint thread1 void parg 2.在.cpp中寫執行緒函式 你希望它做什麼,一般用作迴圈,你的對話方塊執行是主線程,它是子執行緒,兩者互不干擾讓程式更流暢 uint cchilddlg t...

MFC樹右鍵選單的建立及使用

1 使用classwizard建立樹節點右鍵訊息,實現右鍵訊息響應函式如下 void ctreedlg onrbuttonclicktree nmhdr pnmhdr,lresult presult else 注 以上步驟獲取右擊時樹的節點控制代碼,不能直接使用 m mytree.getselect...

MFC的多執行緒程式設計建立

本文主要描述基於mfc的多執行緒技術中的工作者執行緒,包括執行緒的建立 傳遞引數 互斥物件保護以及執行緒的銷毀。還將 執行緒函式作為類的成員函式的情況。首先需要說明的是工作者執行緒和介面執行緒的區別,介面執行緒 ui執行緒 指的是包含有訊息佇列的執行緒,可以使用訊息機制相互通訊 工作者執行緒則沒有訊...