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安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
科技创新与互联网经济
互联网电商科技
西安互联网科技
美国互联网黑科技
菲比寻常互联网科技
润盈互联网科技
人人互联网科技是培训
新华互联网科技校企合作
互联网科技创新企业排名
海南科技产业互联网平台
伊宁互联网科技做什么的
沐思想互联网科技有限公司
从那以后互联网科技有限公司
陕西云淼互联网科技公司
宁波跨境商互联网科技有限公司
昆明中奇联合互联网科技
互联网时代科技型公司的机会
陕西九四连强互联网科技有限公司
好易买互联网科技
中国互联网科技发展
时间互联网络科技
上海万想互联网科技
港股科技和互联网
互联网媒体平台算高科技产业
玉溪新华互联网科技好不好
科技互联网海报
启辰互联网科技
互联网科技收购价值
网互联网络科技