MFC 线程创建方式
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作。主UI线程获取到工作线程发送的信息来刷新界面。不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC创
千家信息网最后更新 2025年12月02日MFC 线程创建方式
MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作。主UI线程获取到工作线程发送的信息来刷新界面。
不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC创建UI线程,使用工作线程的方式。
1、UI线程,继承CWinThread类
1 class CAddDeviceApp : public CWinThread 2 { 3 DECLARE_DYNCREATE(CAddDeviceApp) 4 protected: 5 CAddDeviceApp(); 6 public: 7 virtual BOOL InitInstance(); 8 virtual int ExitInstance(); 9 protected:10 virtual ~CAddDeviceApp();11 DECLARE_MESSAGE_MAP()12 13 };
线程InitInstance
1 BOOL CAddDeviceApp::InitInstance() 2 { 3 CSecondThreadDlg dlg; 4 m_pMainWnd = &dlg; 5 INT_PTR nResponse = dlg.DoModal(); 6 if (nResponse == IDOK) 7 { 8 } 9 else if (nResponse == IDCANCEL)10 {11 }12 return TRUE;13 }m_pMainWnd = &dlg; 加上这个之后,UI线程会独立处理消息循环,启动的UI线程DoModal对话框不会阻塞主线程的对话框。启动UI线程:
1 CAddDeviceApp * pThread = (CAddDeviceApp*)AfxBeginThread(RUNTIME_CLASS(CAddDeviceApp));
2、工作线程目前工作在MFC中使用的工作线程有:MFC线程,C Run运行时线程,Boost线程。
1 boost::thread thrd(BoostThreadFunc); 2 3 _beginthread(CRunThreadFunc,0,NULL); //不用4 _beginthreadex(NULL, 0, ThreadFunEx, NULL, 0, NULL); 5 pThread=AfxBeginThread(ThreadFunc,NULL,THREAD_PRIORITY_NORMAL);
BOOST线程创建的方式种类比较多,可以通过函数对象,Boost::bind成员函数等多种方式创建,由于工作没太多时间,就不总结了。
一般MFC使用AfxBeginThread比较安全。
线程
工作
方式
函数
对话框
对话
安全
不用
信息
可以通过
多种
对象
应用程序
成员
时间
消息
界面
种类
程序
项目
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
考研考网络技术
为什么完美一直显示服务器已满
数据库专家需要具备哪些能力
奇安信融媒体的网络安全
aiwi服务器
锋云服务器换硬盘
民警检查网络安全
手机动漫软件开发
软件开发方面什么最赚钱
湖北新闻传媒学院网络安全
网络安全应急演练协议
浪潮服务器怎么查看磁盘阵列
郑州软件开发专科学校
平板全屋定制软件开发
服务器电源开关有问题
传奇服务器如何将账号转区
做专利数据库报价
山大的网络安全专业
深圳市汇悦网络技术有限公司
贵州计算机软件开发哪家强
网络技术学习目标
网络技术工程公司需要什么岗位
应用数学与通信网络技术
网络安全面临哪些严重威胁
浪潮服务器怎么查看磁盘阵列
数据库的表去除重复数据
社交软件开发风口在哪里
瀑布模型软件开发特点
网络安全中国龙头
io读写数据库