社区
进程/线程/DLL
帖子详情
请问user thread 和 worker thread的区别?
gxxlc
2003-11-09 02:03:39
他们的区别在哪里?什么情况下用哪个?谢谢!
...全文
80
4
打赏
收藏
请问user thread 和 worker thread的区别?
他们的区别在哪里?什么情况下用哪个?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
会思考的草
2003-11-10
打赏
举报
回复
在Win32SDK中,线程是没有所谓用户线程和工作线程之分的,用户线程和工作线程是MFC中的概念。之所以要这样分,是因为用户线程负责界面,和用户打交道,要进行消息处理;而工作线程只完成后台任务,譬如计算,无须和用户交互。这两个线程的区别,就是用户线程拥有消息队列。一旦一个工作线程拥有了一个消息队列,那它就成为了一个用户线程。通常的建议是,不要把非常耗时的操作放在用户线程中做,那样会使程序界面失去响应。
更详细的内容,参见《Win32多绪程序设计》。
carbon107
2003-11-09
打赏
举报
回复
如果一个线程只完成后台计算,不需要和用户交互,那么可以使用工作线程;如果需要创建一个处理用户界面的线程,则应使用用户界面线程。这两者的主要区别在于,MFC框架会给用户界面线程增加一个消息循环,这样用户界面线程就可以处理自己消息队列中的消息。这样看来,如果需要在后台作一些简单的计算(如对电子表格的重算),则首先应考虑使用工作线程,而当后台线程需要处理比较复杂的任务,确切地说,当后台线程的执行过程会随着实际情况的不同而改变时,就应该使用用户界面线程,以便能对不同的消息作出响应。
ablefirst
2003-11-09
打赏
举报
回复
用户线程通常有窗口,因此具有自己的消息循环。
工作线程没有窗口,因此不需要处理消息。工作线程比较易于编程,而且更加有用。
孤必有邻
2003-11-09
打赏
举报
回复
都是多线程,
前者有窗口,可以响应窗口消息,用于需要一个以上的界面同时在工作
后者无窗口,只能响应线程消息,用于后台处理
参考一个示例代码:
http://www.yangning.com/cgi-bin/topic.cgi?forum=1&topic=85&show=0
CrashRpt_v.1.4.3_r1645.7z
Handles exceptions in the main
thread
and/or in all
worker
thread
s of your
user
-mode program: SEH exceptions, unhandled C++ typed exceptions, signals and CRT errors. Generates error report including crash minidump, extensible crash description XML, application-defined files, desktop screenshots and screen capture videos.
线程基本知识(英文)
本文以简练的语言介绍了什么是线程,并且着重介绍了MFC的两种实现线程方式: 1 -
Worker
Thread
s 2 -
User
Interface
Thread
s 文末有示例说明
UI
Thread
&
Worker
Thread
UI
Thread
Worker
Thread
worker
thread
最近用
worker
thread
用的比较频繁,找到了一篇讲work
thread
讲的非常好的blog,请戳这里 ps,那篇blog写的非常好,但是你能想象吗?!这是作者2001写的,15年了 再结合我最近碰到的问题说两句,以下是blog中提到的
Worker
thread
s and the GUI II: Don't touch the GUI That's right. A wor
Thread
PoolExecutor(三)——
Worker
我们可以在beforeExecute方法中抛出异常,这样task不会被执行,而且在跳出该循环的时候completedAbruptly的值是true,表示the
worker
dieddueto
user
exception,会用decrement
Worker
Count调整wc。上面说过,add
Worker
会用当前task创建一个
Worker
对象,相当于对task的包装,然后用
Worker
对象作为task创建一个
Thread
,该
Thread
保存在
Worker
的
thread
成员变量中。...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章