千家信息网

MFC 线程创建方式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作。主UI线程获取到工作线程发送的信息来刷新界面。不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC创
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 广州大一互联网络科技有限公司 湖南永感互联网科技有限公司 与互联网科技公司 互联网科技革命 上游互联网科技 互联网 新科技 科技互联网的估值 宁波青枫互联网科技有限公司 创业天下互联网科技有限公司 中国航天科技大学国际工业互联网 保险科技服务互联网营销体系 黑科技 体验场景 互联网大会 抖集互联网科技技术咨询 福州德业互联网科技 版纳互联网科技选哪家 互联网公司属于科技吗 众联互联网络科技 承德科技产业互联网平台 颐高云石互联网科技 科技企业和互联网企业 广州宏创互联网科技 互联网科技公司有哪些 科技与互联网哪个更好 互联网大会黑科技排名 陕西九四连强互联网科技有限公司 艺电能源互联网科技有限公司招聘 绵阳真晨互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网企业和网络科技有限公司
0