社区
进程/线程/DLL
帖子详情
MFC下用户界面线程和工作者线程的区别?
guguqiaqia
2008-06-24 09:48:37
刚接触多线程开发,为了省时间,所以发此帖子。
MFC下用户界面线程和工作者线程的区别?
以及使用方法。例如创建和关闭。
...全文
880
12
打赏
收藏
MFC下用户界面线程和工作者线程的区别?
刚接触多线程开发,为了省时间,所以发此帖子。 MFC下用户界面线程和工作者线程的区别? 以及使用方法。例如创建和关闭。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NoImagination
2008-06-27
打赏
举报
回复
补充:
1,如果说多线程,不讲线程的同步,是一个很大的遗漏,要研究几种同步机制,针对每种都有一个对应的用途。这里我不讲了,找资料吧。
2,工作线程的消息队列我实现了
http://hi.baidu.com/yykbrother/blog/item/bb945efb80f8c9274e4aea01.html
有兴趣的可以参考,发现不妥的或不明白的要来信啊
yyk882002@163.com
NoImagination
2008-06-27
打赏
举报
回复
楼上的说的是正确的,我实现过。
另外,界面线程与工作者线程主要区别就是 有无消息队列。界面线程利用消息队列主要响应用户操作,给出一个不中断的界面。
而工作者线程主要负责一些低速的IO operation ,当然,你也可以做其他的东西。
对应于函数,AfxBeginThread有2个版本,一个用来创建UI线程,一个用来创建WORK线程,详情查阅MSDN。
对应的结束操作用 AfxEndThread。
还有CreateThread函数,对应的结束操作用 TerminateThread 或 ExitThread,区别是TerminateThread可能并不释放资源,原因是MFC中的依赖,微软的专门设计。
运行时库相关的要用 _beginthread,和 _endthread 。原因是线程内对象的释放问题。
以上个人理解,详细参考资料。
zys85
2008-06-27
打赏
举报
回复
你可以用工作者线程写个界面线程出来
Amuro1987218
2008-06-27
打赏
举报
回复
[Quote=引用 5 楼 yysbest 的回复:]
哈……
说句体会最深的话,除了名字不一样,其实是一样的。
有人说,区别在于是否有消息循环。
其实,都有消息循环,只不过,看你自己处理而已了。
只不过,Window包装之后,侧重点不一样了……
[/Quote]
嗯嗯,其实说到底层很多不同的东西都能说到一起去,不过貌似这里楼主问的是应用中的区别:)
Y神圣
2008-06-27
打赏
举报
回复
个人只知道MFC的工作线程木有消息循环,而界面线程是有的。其实工作线程和界面线程都是对于MFC来说的,对于一般的Windows Application来说是不分这些的,MFC对线程的封装无非是在启动线程之前为MFC的一些变量进行初始化的动作。
skinfeature
2008-06-27
打赏
举报
回复
补充:
1,如果说多线程,不讲线程的同步,是一个很大的遗漏,要研究几种同步机制,针对每种都有一个对应的用途。这里我不讲了,找资料吧。
2,工作线程的消息队列我实现了
http://hi.baidu.com/yykbrother/blog/item/bb945efb80f8c9274e4aea01.html
有兴趣的可以参考,发现不妥的或不明白的要来信啊
yyk882002@163.com
guguqiaqia
2008-06-27
打赏
举报
回复
感谢所有回复。
day572
2008-06-24
打赏
举报
回复
区别:
UI thread : 派生CWinThread,//CWinThread::Run里有一个消息循环,所以派生这个类,
//UI thread ,不仅要执行线程函数,还要处理消息
然后调用afxBeginThread.
worker thread: 为它准备一个执行线程函数,然后调用AfxBeginThread;
Amuro1987218
2008-06-24
打赏
举报
回复
有无消息循环
Zhang_ZP
2008-06-24
打赏
举报
回复
帮楼主顶帖。。。。。。。。。。
雨中的月儿
2008-06-24
打赏
举报
回复
哈……
说句体会最深的话,除了名字不一样,其实是一样的。
有人说,区别在于是否有消息循环。
其实,都有消息循环,只不过,看你自己处理而已了。
只不过,Window包装之后,侧重点不一样了……
cnzdgs
2008-06-24
打赏
举报
回复
Windows中的前台窗口所在线程优先于其它线程,这样设计目的是即使后台不停地执行也不会导致界面无响应。
MFC
UI 和 work thread
本文介绍了
MFC
中
用户界面
(UI)
线程
与
工作者
线程
的
区别
及创建方法。UI
线程
负责创建对话框并处理用户输入,而
工作者
线程
执行后台任务。文章详细讲解了如何通过派生CWinThread来创建UI
线程
,并展示了如何使用AfxBeginThread创建这两种类型的
线程
。
在
MFC
里面实现
线程
的实例
本文介绍了
线程
技术,指出其目的是提高运行速度和实现多任务。阐述了进程和
线程
的概念,说明一个进程可包含多个
线程
。详细介绍了
MFC
中
工作者
线程
和
用户界面
线程
的
区别
、创建方法及相关函数,还给出了工作
线程
和UI
线程
创建的实例及配套源代码。
PeekMessage完美解决
MFC
主界面无响应
本文介绍
MFC
中
用户界面
线程
与
工作者
线程
的
区别
,重点讲解如何通过
工作者
线程
处理耗时任务以保持UI界面响应性。此外,还介绍了PeekMessage函数的使用方法,用于解决主界面无响应的问题。
MFC
工作者
线程
和
用户界面
线程
本文深入探讨
MFC
中的
线程
概念,详细讲解
工作者
线程
和
用户界面
线程
的
区别
及其应用场景。介绍了AfxBeginThread函数的两种重载形式,以及CWinThread类的关键成员变量和函数,帮助读者理解如何在
MFC
应用中有效管理和使用
线程
。
工作
线程
与
用户界面
线程
|多
线程
之创建
工作者
线程
和
用户界面
线程
区别
本文介绍了
MFC
中
工作者
线程
和
用户界面
线程
的
区别
及创建方法。
工作者
线程
适合处理后台任务,而
用户界面
线程
则能处理界面交互。文章详细讲解了如何使用AfxBeginThread函数创建这两种
线程
。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章