多线程编程之二——MFC中的多线程开发
2007-03-17 22:00:08 来源:WEB开发网核心提示: 在MultiThread5Dlg.h文件中添加一个结构的定义:struct threadInfo{UINT nMilliSecond;CProgressCtrl* pctrlProgress;};线程函数的声明:UINT ThreadFunc(LPVOID lpParam);注意,二者应在
在MultiThread5Dlg.h文件中添加一个结构的定义:struct threadInfo
线程函数的声明:
{
UINT nMilliSecond;
CProgressCtrl* pctrlProgress;
};UINT ThreadFunc(LPVOID lpParam);
注意,二者应在类CMultiThread5Dlg的外部。
在类CMultiThread5Dlg内部添加protected型变量:
CWinThread* pThread;
在MultiThread5Dlg.cpp文件中进行如下操作:定义公共变量:threadInfo Info;
双击按钮IDC_START,添加相应消息处理函数:
void CMultiThread5Dlg::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
Info.nMilliSecond=m_nMilliSecond;
Info.pctrlProgress=&m_ctrlProgress;
pThread=AfxBeginThread(ThreadFunc,
&Info);
}
在函数BOOL CMultiThread3Dlg::OnInitDialog()中添加语句:{
……
// TODO: Add extra initialization here
m_ctrlProgress.SetRange(0,99);
m_nMilliSecond=10;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
添加线程处理函数:UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(i);
Sleep(nTemp);
}
return 0;
}
更多精彩
赞助商链接