社区
进程/线程/DLL
帖子详情
MFC下用户界面线程和工作者线程的区别?
guguqiaqia
2008-06-24 09:48:37
刚接触多线程开发,为了省时间,所以发此帖子。
MFC下用户界面线程和工作者线程的区别?
以及使用方法。例如创建和关闭。
...全文
807
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
多
线程
工作者
线程
用户界面
线程
MFC
多
线程
工作者
线程
用户界面
线程
MFC
多
线程
的创建,包括工作
线程
和
用户界面
线程
《
MFC
多
线程
的创建,包括工作
线程
和
用户界面
线程
》全面讲解
MFC
多
线程
的创建,界面多
线程
与
工作者
多
线程
,多
线程
的起源、继承与派生,两多
线程
之间的
区别
与相同点,定时器与多
线程
的关系与异同(定时器是定时优先抢占...
MFC
用户界面
线程
与
工作者
线程
工作者
线程
创建滚动条,
用户界面
线程
实现绘图功能,思路清晰,对
线程
初学者有很大帮助
工作者
线程
创建滚动条,
用户界面
线程
实现绘图功能,思路清晰,对
线程
初学者有很大帮助
MFC
工作者
线程
线程
利用
工作者
线程
实现的一个累加程序,输入数据,
工作者
线程
负责计算
MFC
创建多
线程
(
工作者
线程
)demo
如标题,在
MFC
中必须使用 AfxBeginThread创建多
线程
,如使用BeginThread可能会出现BUG
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章