1. 程式人生 > >MFC執行緒的掛起、喚醒和終止

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); }

完工!可以編譯並運行了!