MFC執行緒的掛起、喚醒和終止
1、建立一個基於MFC的基本對話方塊,命名為ThreadManage 2、在對話方塊視窗建立五個按鈕和一個靜態文字和一個進度條 _______________________________________ | _____________________________ | | 執行緒管理 | | | | | | | | |=====================| | | | | | | | |____________________________ | | | | | |建立執行緒| |掛起執行緒| |喚醒執行緒| | | | | | 終止執行緒| | 取 消 | | |_______________________________________| 3、在CThreadManageDlg定義中新增一個成員函式
HANDLE m_hThread; 4、使用類嚮導為進度條建立一個變數m_Prog。 5、在CThreadManageDlg定義中編寫一個沒有基類的執行緒函式, 線上程函式中設計一個較大的迴圈,顯示進度條的進度。程式碼如下: DWORD _stdcall ThreadProc(LPVOID lpParameter) { CThreadManageDlg * pDlg=(CThreadManageDlg*)lpParameter; //獲取對話方塊指標 pDlg->m_Prog.SetRange(0,99999); for(int i=0;i<99999;i++) { pDlg->m_Prog.SetPos(i); } return 0; } 6、用類嚮導為按鈕“建立執行緒”新增一個處理函式並進行編輯如下: void CThreadManageDlg::OnBtCreate() { m_hThread=CreateThread(NULL,0,ThreadProc,this,0,NULL); //建立執行緒 } 7、用類嚮導為按鈕“掛起執行緒”新增一個處理函式並進行編輯如下: void CThreadManageDlg::OnBtsuspend() { SuspendThread(m_hThrad); } 8、用類嚮導為按鈕“喚醒執行緒”新增一個處理函式並進行編輯如下: void CThreadManageDlg::OnBtresume() { ResumeThread(m_hThread); } 9、用類嚮導為按鈕“終止執行緒”新增一個處理函式並進行編輯如下: void CThreadManageDlg::OnBtterminate() { TerminateThread(m_hThread,0); } 10、用類嚮導為按鈕”取消“新增一個處理函式並編輯如下: void CThreadManageDlg::OnCancel() { exit(1); }
完工!可以編譯並運行了!