您的位置:首页 > 其它

MFC线程的挂起、唤醒和终止

2015-04-10 09:22 603 查看
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);

}

完工!可以编译并运行了!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: