MFC下结束AfxBeginThread开启的线程

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  最近,由于论文的需求,要用到Windows下的多线程。考虑到界面用MFC写了,于是上网搜了下MFC下的多线程怎样搞,都说用AfxBeginThread来日比较好。哥向来比较浮躁,先搜搜有没相关代码,找到几个可用的,然后各种摘抄,于是乎将哥的播放器的几个线程搞成下面这段代码(摘要):

  UINT playThread(LPVOID pParam){  //播放线程,固定格式

  //......做变量声明,赋值等前期工作

  while(SomeCondition){       //播放线程的循环

  //......播放音乐,不解析

  }

  return 0;

  }

  void CPlayerDlg::OnBnClickedPlay(){   //播放按钮响应函数

  if(isThreadPause){   //判断是否暂停中

  isThreadPause=false;

  pPlayerThread->ResumeThread();//继续播放

  }

  else{

  OnBnClickedStop();

  pPlayerThread=AfxBeginThread(playWaveThread,NULL);  //开启播放线程

  }

  }

  void CPlayerDlg::OnBnClickedPause(){     //暂停响应函数

  if(!isThreadPause){

  PlayerThread->SuspendThread();     //挂起进程,相当于暂停播放

  isThreadPause=true;

  }

  }

  void CPlayerDlg::OnBnClickedStop(){    //终止响应函数

  if(pPlayThread){

  isThreadPause=false;

  TerminateThread(pPlayerThread->m_hThread,0);//强行终止线程,这里有问题,后面说

  }

  }

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答