MFC 唤醒指定的线程

原创 2013年12月02日 14:36:22

    对于MFC的程序,有些时候我们需要的是主线程要等待次线程启动之后然后启动,完成消息的发送和传递,那么在主线程创建的时候就会对主线程进行设置属性为CREATE_SUSPENDED,那么就需要在特定的时候进行唤醒线程,还是一个技巧就是对于线程创建的时候那么需要程序员静态的保存线程的ID,那么使用全局函数::ResumeThread();但是这个函数需要的是被唤醒的线程的句柄,那么就需要程序员考虑如何获得线程的句柄,随之而来就是使用OpenThread()进行对指定线程ID的线程进行获取该线程的句柄;这样这两个函数进行结合就会完成线程的获取,但是值得注意的是

对与OpenThread()根据一个线程ID来打开该线程对象的句柄。
函数原型:
HANDLE OpenThread(
DWORDdwDesiredAccess,   //以哪种权限访问线程对象
BOOLbInheritHandle,     //是否允许子进程继承句柄
DWORDdwThreadId         //线程ID
);

如下结合使用这两个函数就可以唤醒指定的线程了:

 

if( -1 == ::ResumeThread( ::OpenThread(THREAD_SUSPEND_RESUME,0,GetCurrentWndThreadId())))
 {
  ::OutputDebugString(_T("OpenThreadfailed !\r\n"));
 }

相关文章推荐

MFC线程实现停表

  • 2014年10月13日 12:11
  • 3.24MB
  • 下载

MFC创建工作者线程.doc

  • 2010年03月09日 18:56
  • 11KB
  • 下载

MFC线程(一):简单介绍

线程简介 我们知道一般情况程序中的代码都是按顺序从头开始一行一行的执行以最后.中间不能出现同时执行的情况.比如一段代码调用两个函数 FunOne(); FunTwo(); 只要当函数FunOn...
  • weiwenhp
  • weiwenhp
  • 2013年03月08日 14:13
  • 23766

MFC创建UI线程

  • 2016年10月31日 17:02
  • 265KB
  • 下载

[备忘]MFC各种控件使用,线程

CComoboBox: CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO_TEST); pCombo->InsertString(0, ...

C++/MFC-线程Thread

一、 线程: 线程,是程序执行流的最小单元。    另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC 唤醒指定的线程
举报原因:
原因补充:

(最多只允许输入30个字)