WEB开发网
开发学院软件开发VC 多线程编程之二——MFC中的多线程开发 阅读

多线程编程之二——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;
}

上一页  1 2 3 4 5 6 7  下一页

Tags:线程 编程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接