首先我们要清晰一点,同样是线程,但创建线程方式不同,由于创建线程的内部实现不同,也就意味着对后期影响是不一样的。

三种创建线程的方式

  • C语言的:__beginthread()/__beginthreadex()
  • Win32的:CreateThread()
  • MFC:AfxBeginThread()

同样的一个AfxMessageBox,三种创建方式创建的工作线程,结果不一样的。

(有什么不一样,留给读者们自己去测试了,非常有必要)

本文主要是讲弹出提示框。

1、对于需要阻塞了等待选择了才往下走的,一般用AfxMessageBox。

2、一般不需要等待的,一晃而过的,MessageBox。

3、在UI主线程,无所谓的,用哪个都行,根据你的需求。

4、如果你是AfxBeginThread()创建的工作线程,AfxMessageBox,它是模态的,但是你用其它两种方式创建的工作线程里面调用AfxMessageBox,它是非模态的。

5、当然你也可以自己定义一个非模态对话框(仅限显示/隐藏),如果你在工作线程中,还需要对你的对话框上的数据进行交换,UpdateData(),那就必死无疑了。

6、针对5的问题,可以打配合的方式显示,那就是在工作线程中Post消息自定义消息出来,然后在主对话框类中接收消息并显示及处理了。类似曲线救国了。好在是并不费劲。

如果遇到有什么疑问,可留言或站内私信消息。

Win32:MessageBox、AfxMessageBox、及工作线程中的对话框相关推荐

  1. 技术派-在工作线程与UI线程中创建对话框

    目录 UI线程创建方式 头文件模板 实现代码模板 工作线程的创建方式 工作线程的线程模板 对话框头文件模板 对话框实现部分 我们在工作中,经常需要在新线程里面创建对话框,要么是在工作线程里面创建对话框 ...

  2. Clinet/Server在工作线程中刷新页面数据的方法

    Worker线程不能修改UI线程的状态(比如文本框里面的内容).解决的办法是写一个用来更新文本框内容的函数,然后在Worker线程里面通过BeginInvoke来利用delegate调用这个函数更新文 ...

  3. VC++中多线程学习(MFC多线程)一(线程的创建、线程函数如何调用类成员呢?如何调用主对话框的成员?、MFC中的工作线程和界面线程的区别)

    这里废话不多讲了,因为项目原因,需要开启线程进行处理,在不了解线程的情况下,直接百度一下,然后就使用了,结果可想而知,出现了异常,所以花了一天时间系统学习一下多线程,这里主要是针对win32编程方面的 ...

  4. MFC多线程的创建,包括工作线程和用户界面线程

    MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的.每一个应用程序的执行都有一个主线程,这个主线程也是 ...

  5. C#中的线程(中)-线程同步

    1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具:                       简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...

  6. Delphi-IOCP学习笔记三====工作线程和Listener

    接第一次代码继续分析 usesJwaWinsock2, Windows, SysUtils;constDATA_BUFSIZE = 1024;IO_TYPE_Accept = 1;IO_TYPE_Re ...

  7. 关于MFC下多线程,在线程中创建非模态对话框以及消息传递

    2019独角兽企业重金招聘Python工程师标准>>> 关于MFC下多线程,在线程中创建非模态对话框以及消息传递 问题: 1.在子对话框中它的子对话框需要实现脱离父对话框的束缚.(因 ...

  8. Qt主线程和工作线程更新界面问题

    Qt在运行时会开启一个主线程,如果没有开启工作线程的话,所有界面上的操作都是在主线程,包括更新界面或者处理数据等操作.大家都知道如果处理数据比较多的话,最好是在单独开启一个线程来处理数据,这样就不会影 ...

  9. 四大组件之Service(四)-Service的线程、工作线程、权限及系统Service

    更新时间 修改意见 2016-08-02 陈敏 第5节 Service的线程和工作线程 刚开始使用Service的时候,常常会有一个误区:认为这个Service运行于应用中一个单独的线程.其实Serv ...

最新文章

  1. 干货!神经网络原来是这样和数学挂钩的 // 深度学习的数学
  2. Nginx和Tengine
  3. Mysql-高性能索引
  4. java–Servlet基础
  5. 计算机三级网络技术打印,全国计算机等级考试三级网络技术历年真题(整理_打印版)...
  6. 结构体的赋值和初始化与取出结构体变量中的成员
  7. Spring之AOP实现
  8. java 磁盘空间_如何使用Java查找剩余的磁盘空间?
  9. Python MySqlDB 增删改数据库(转载)
  10. Android全面解析Handler
  11. 如何创建一个最小的串口、TTY设备包括虚拟控制台,串口以及伪终端设备的驱动程序
  12. VMware SDS 之四: VSAN的技术细节 (含VSAN 6.0、6.1版的新内容)
  13. HTTP/2之服务器推送(Server Push)最佳实践
  14. iOS Firebase如何上传.dSYM包
  15. VS2015/VS2017C++报错C++LNK1104 无法打开文件“ucrtd.lib”或无法打开包括文件“corecrt.h“
  16. 计算机绘图cad期末考试试题,20年广东理工学院成人高考期末考试 计算机绘图(AutoCAD) 复习资料.pdf...
  17. 【开源之美】nanomsg(2) :req/rep 模式
  18. Hexo 个人博客搭建完整版笔记
  19. Android开发笔记之视频录制
  20. 计算机基础知识电大形考任务5,国家开放大学电大专科《计算机平面设计(1)》网络课形考任务4及任务5答案.doc...

热门文章

  1. 當不定詞、動名詞和命令句(又稱祈使句)都放在句首位置時
  2. 用软件工程泡MM的方法(ZT)
  3. 面试中浅谈Spring IOC
  4. 家庭宽带 动态公网IP,使用腾讯云DDNS实现实时更新DNS解析记录
  5. WS2812B使用备忘
  6. WPF 给文本框TextBlock以及密码框PassWord加背景水印实现用户登录提示
  7. 微星h61m主板jsp1接线图_微星主板jspi1怎么接,jspi1怎么接线
  8. 信号与系统(Python) 学习笔记摘录 (3) LTI 系统 与 滤波器
  9. 布局与控件(一)——布局与控件的常用概念
  10. 后台开发,从基础到高级,有什么好的书籍推荐?