//线程入口函数(全局)
UINT MyThreadProc(LPVOID pParam)
{
//在需要添加返回值的地方
if (...)
{
AfxEndThread(0);
return 0;
} if (...)
{
AfxEndThread(1);
return 1;
}
...
} //在主线程中创建线程,并获取线程函数的返回值
CWinThread* pThread = AfxBeginThread(MyThreadProc, NULL, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
pThread->m_bAutoDelete = FALSE;//设置不自动释放
pThread->ResumeThread();//恢复运行
WaitForSingleObject(pThread->m_hThread, -1);//等待运行结束
DWORD dwResult(0);
BOOL flag = ::GetExitCodeThread(pThread->m_hThread, &dwResult);//执行成功返回TRUE,否则为FALSE. dwResult存储线程函数的返回值
if (dwResult == 0)
{
...
}
else if (dwResult == 1)
{
...
}

参考链接:

https://blog.csdn.net/qq_22034437/article/details/52711043

https://blog.csdn.net/xbmoxia/article/details/16985953

MFC中AfxBeginThread、AfxEndThread、GetExitCodeThread的配合使用(工作者线程)的更多相关文章

  1. MFC中线程相关知识

    MFC中把线程分为两种类型,UI线程和工作者线程. MFC中启动一个线程的最好方法是调用AfxBeginThread,有两个版本,一个用于启动Ui线程,另外一个用于启动工作者线程.在MFC程序中,只有 ...

  2. WebWorker:工作者线程初探

    WebWorker:工作者线程初探 参考资料: 1.Web Worker 使用教程 - 阮一峰:http://www.ruanyifeng.com/blog/2018/07/web-worker.ht ...

  3. 使用MFC中的AfxBeginThread创建多线程

    创建一个基于对话框的工程,工程名为CreateThreadRect   在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下   工作者线程的函数必须是全局函数或静态 ...

  4. 不使用CvvImage类来在MFC中显示图像

    /* * ===================================================================================== * * Filen ...

  5. 多线程编程之二 ---MFC中的多线程开发

    下载源代码 五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消 ...

  6. MFC工作者线程

    //************工作者线程**************1.在头文件中添加UINT ThreadFunc(LPVOID lpParam); 注意应在类的外部 2.添加protected型变量 ...

  7. 互斥对象 Mutex 和MFC中的CMutex

    互斥(Mutex)是一种用途非常广泛的内核对象.能够保证多个线程对同一共享资源的互斥访问.同临界区有些类似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共 ...

  8. 转:MFC中创建多线程

    MFC中创建多线程   MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员 ...

  9. MFC 中线程传递CString 是不安全的 转

     MFC 中线程传递CString 是不安全的       在MFC中,向线程传递CString变量参数时,很容易犯一个错误,就是使用一个超出生存期的变量,在主函数中定义的CString变量是局部变量 ...

  10. MFC中创建多线程

    1.   列举几种进程的同步机制,并比较其优缺点. 原子操作    信号量机制   自旋锁    管程,会合,分布式系统 2.   进程之间通信的途径 共享存储系统       消息传递系统      ...

随机推荐

  1. [密码管理/信息安全] KeePass Java 客户端 : KeePassJava2

    序:续<KeePass:密码管理工具> [密码管理/信息安全] 密码管理工具:KeePass vs LastPass vs 1Password - 博客园/千千寰宇 [推荐] 概述 Kee ...

  2. Verilog5_有限状态机

    一.有限状态机(Finite State Machine, FSM)基本概念 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路:         其状态只能在同一时钟跳变沿从一个状态转向另一个状态: ...

  3. 深入理解第二范式(2NF):提升数据库设计的有效性与灵活性

    title: 深入理解第二范式(2NF):提升数据库设计的有效性与灵活性 date: 2025/1/16 updated: 2025/1/16 author: cmdragon excerpt: 数据 ...

  4. ctfshow--web10 php代码逻辑漏洞with rollup注入

    dirsearch没有扫到文件 查看源代码发现 有个style.css文件点击查看 查看index.phps代码 又是代码审计 点击查看代码 <?php $flag=""; ...

  5. Q:如何实现notepad++列编辑模式

    列编辑: txt编辑器大家都非常熟悉,当需要修改多行的时候只能一行一行的修改.而notepad 可以同时修改多行的数据. 1.鼠标移动光标到要选择的列 2.按住 alt 键,从上到下选择多列,光标会变 ...

  6. Ansible之二playbook

    反星系 连接https://galaxy.ansible.com下载相应的roles 列出所有安装的   galaxy ansible-galaxy  list 安装galaxy     ansibl ...

  7. Luogu P11628 WC2025 猫粮 题解 [ 绿 ] [ 贪心 ] [ adhoc ] [ 鸽巢原理 ]

    猫粮:WC 诈骗题.我竟然能切 WC 的 T3 也是逆天了. 话说切了猫粮能变成猫娘吗 qwq. 思路 首先题目里有下面几点关键的性质: 所有猫粮质量总和等于所有猫要吃的质量总和. 优质的有 \(n\ ...

  8. OpenCascade 开源的三维建模几何造型开发平台

    官方文档 https://dev.opencascade.org/doc/overview/html/index.html Open CASCADE(简称OCC)平台是由法国Matra Datavis ...

  9. 移动硬盘插入win10检测到却不显示盘符解决方法

    1.开始菜单中的设置-----设备. 2.选择"蓝牙和其他设备" 3.在其他设备栏中就能看到检测到的移动硬盘,点击删除设备后重新插入移动硬盘即可在此电脑上显示盘符.

  10. 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)

    现在使用Uni-app开发手机端APP已经变得很普遍,同一套代码就可以打包成Android App 和 iOS App,相比原生开发,可以节省客观的人力成本.那么如何使用Uni-app来开发视频聊天软 ...