MFC中AfxBeginThread、AfxEndThread、GetExitCodeThread的配合使用(工作者线程)
//线程入口函数(全局)
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的配合使用(工作者线程)的更多相关文章
- MFC中线程相关知识
MFC中把线程分为两种类型,UI线程和工作者线程. MFC中启动一个线程的最好方法是调用AfxBeginThread,有两个版本,一个用于启动Ui线程,另外一个用于启动工作者线程.在MFC程序中,只有 ...
- WebWorker:工作者线程初探
WebWorker:工作者线程初探 参考资料: 1.Web Worker 使用教程 - 阮一峰:http://www.ruanyifeng.com/blog/2018/07/web-worker.ht ...
- 使用MFC中的AfxBeginThread创建多线程
创建一个基于对话框的工程,工程名为CreateThreadRect 在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下 工作者线程的函数必须是全局函数或静态 ...
- 不使用CvvImage类来在MFC中显示图像
/* * ===================================================================================== * * Filen ...
- 多线程编程之二 ---MFC中的多线程开发
下载源代码 五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消 ...
- MFC工作者线程
//************工作者线程**************1.在头文件中添加UINT ThreadFunc(LPVOID lpParam); 注意应在类的外部 2.添加protected型变量 ...
- 互斥对象 Mutex 和MFC中的CMutex
互斥(Mutex)是一种用途非常广泛的内核对象.能够保证多个线程对同一共享资源的互斥访问.同临界区有些类似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共 ...
- 转:MFC中创建多线程
MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员 ...
- MFC 中线程传递CString 是不安全的 转
MFC 中线程传递CString 是不安全的 在MFC中,向线程传递CString变量参数时,很容易犯一个错误,就是使用一个超出生存期的变量,在主函数中定义的CString变量是局部变量 ...
- MFC中创建多线程
1. 列举几种进程的同步机制,并比较其优缺点. 原子操作 信号量机制 自旋锁 管程,会合,分布式系统 2. 进程之间通信的途径 共享存储系统 消息传递系统 ...
随机推荐
- Abp vNext 扩展属性
扩展属性 我们发现abp的默认都会有一个ExtraProperties属性,那么他的作用是什么呢?当我们使用abp的时候,需要对其原有的表进行扩展或者添加我们想要的字段,又不想改源码,以最小的方式实现 ...
- AICA第6期-学习笔记汇总
AICA第6期-学习笔记汇总 AICA第六期|预科班课程 1.<跨上AI的战车> 2.<产业中NLP任务的技术选型与落地> 3.<计算机视觉产业落地挑战与应对> 4 ...
- Vue数据更新不渲染页面的问题
一. 问题现象 在通过数组下标的方式修改集合元素,元素的值确实是更新了,但是页面不能重新渲染. 二. 原因分析 Vue官方文档传送门 三. 解决方案 // 针对数组使用 this.$set(arr,i ...
- 画(HB To Ryby!)
"客人,请描述得具体一点." 他似乎还是很难为情. "呃--就是--一个女孩儿",他又勉强启开嘴,"女孩儿"三个字几乎被咽进嗓子 ...
- 第一章 Java集合框架
----------------------------------------------------------------------------- Java集合框架(一)-ArrayList ...
- Java线程池实现原理与源码解析(jdk1.8)
为什么需要线程池?线程池能够对线程进行统一分配,调优和监控:- 降低资源消耗(线程无限制地创建,然后使用完毕后销毁)- 提高响应速度(无须创建线程)- 提高线程的可管理性 Java是如何实现和管理线程 ...
- 一文搞懂企业架构与DDD融合
大家好,我是汤师爷~ 今天聊聊企业架构与DDD如何进行融合. 企业架构TOGAF 什么是企业架构TOGAF? TOGAF(The Open Group Architecture Framework)是 ...
- python脚本抓取省市县区乡镇村庄(五级行政区划)
用python脚本抓取省市县区乡镇村庄(五级行政区划)的过程如下: 1,抓取国家统计局官网上的行政区划名称和对应的代码(5级是不同的网页,所以涉及多层跳转): 2,数据量大约几十万条,频繁访问考虑防屏 ...
- 安全可信|权威认证!天翼云边缘安全加速平台AccessOne护航企业行稳致远!
8月25日,由中国信息通信研究院(以下简称"中国信通院")和中国通信标准化协会联合主办的2023首届SecGo云和软件安全大会公布了可信安全最新评估结果,天翼云通过"首批 ...
- 硬件设计:逻辑电平--LVDS
参考资料:关于LVDS电平 LVDS电平 PECL.LVDS和CML电平 高速数字逻辑电平(8)之LVDS LVDS自学笔记 LVDS用户手册 LVDS和M-LVDS电路实施指南 LVDS(Low-V ...