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);
}
完工!可以编译并运行了!