MFC 线程创建方式
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作。主UI线程获取到工作线程发送的信息来刷新界面。不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC创
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
数据库自增id 事务
服务器机柜定制开发
软件开发要求简历
无线远程水表需要租服务器么
公司软件开发能力承诺书
提高了网络安全意识增强
进服务器D盘
阿基弼智能时控模块服务器
行业网络安全事件的处置流程
杭州客吉吉网络技术有限公司
qa质量管理软件开发
软件开发开发人力的估算
温州python软件开发
黄浦区辅助软件开发代理品牌
e×CeL数据库
数据库查询 排序
空客导航数据库命名
网络安全进入学校宣传
网络安全为人民简讯
藁城区应用软件开发服务供应
浙江正规网络技术服务基础
服务器供应形势
网络安全宣传稿一千字
互联网理财产品恒昌金融科技
服务器跑量化
行业网络安全事件的处置流程
用ssh连服务器传文件就断了
服务器集成显卡能做计算吗
软件开发也是源代码吗
普通数据库是什么