社区
C#
帖子详情
BackgroundWorker 和Thread 的关系
N11H11
2009-07-03 04:22:21
一个小程序需要用到一个6线程,我目前是用类似下面的程序来分别运行5个子线程
Dim t As New Thread(AddressOf t1)
t.Start()
如果我要用BackgroundWorker,是不是向窗体中拖入6个BackGroundWorker控件?
BackgroundWorker 和Thread的效率那个高一些?
...全文
404
7
打赏
收藏
BackgroundWorker 和Thread 的关系
一个小程序需要用到一个6线程,我目前是用类似下面的程序来分别运行5个子线程 Dim t As New Thread(AddressOf t1) t.Start() 如果我要用BackgroundWorker,是不是向窗体中拖入6个BackGroundWorker控件? BackgroundWorker 和Thread的效率那个高一些?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuxiangq
2010-09-25
打赏
举报
回复
以前一直用Thread。。。。。。今天才知道有个封装好的控件
scy251147
2009-07-03
打赏
举报
回复
wuyq11
2009-07-03
打赏
举报
回复
BackgroundWorker多线程组件
参考
kkun_3yue3
2009-07-03
打赏
举报
回复
BackgroundWorker就是一个高级控件,方便使用Thread,后者是前者的灵魂或基础
直接使用后者难度稍大,但换来的是灵活方便
haiwangstar
2009-07-03
打赏
举报
回复
跨线程访问线程 笔误
跨线程访问控件
haiwangstar
2009-07-03
打赏
举报
回复
给你总结一下:
BackgroundWorker与线程的关系:
1. BackgroundWorker在内部封装了线程.所以你创建了一个BackgroundWorker,就相当于创建一个线程,并且提供一个方法做为任务由它去执行. 而且从名字上看很明显,它是一个后台任务,一定要在单独的线程上运行的.
2.在WINDWOS桌面程序中使用线程时,常常会遇到需要跨线程访问线程的情况,因为WINDOWS的界面控件都不是线程安全的,所以不能直接跨线程访问,虽然.NET提供了BeginInvoke,Invoke的封送方法,但代码仍然较乏味.所以在.NET中,微软提供了对线程封装的组件BackgroundWorker,用这个类时,你可以在它的工作方法中去访问另外线程的控件,不必考虑封送,这是因为它内部帮你封送了.
3. 使用BackgroundWorker时,处理进度显示量容易.
4. 当你执行的任务较简单,不需要复杂控制时使用BackgroundWorker,较为方便;当你要执行的任务需要复杂控制(如线程同步)时,要自己 创建线程.
zhaoweiting0609
2009-07-03
打赏
举报
回复
BackgroundWorker执行单线程的是很可以用
多线程,得用Thread或者用线程池
这个效率都差不多吧
只是使用的方式不一样,BackgroundWorker为两个线程的执行提供了一个好的方式
Background
worker
与
Thread
的区别
最近项目要用到,窗体Form程序要在后台开启几个子线程,负责和其他端进行通信,异步读写,并且来更改UI。在网上查了有
Background
worker
与
Thread
两种方法。 1.
Background
worker
Background
Worker
是微软的在.net Framwork中添加的一个组件,主要对线程的访问提供了一种安全的方式。简单的说就是对
Thread
的一次封装。 首先介绍一下Bac...
background
worker
与
Thread
区别
在我编写的一个程序中创建500个
Thread
后,程序垮掉。然而创建500个
BackGround
Worker
后,程序就能正常运行。这是为什么呢? 当用户执行一个非常耗时的操作时,如果不借助
Thread
编程,用户就会感觉界面反映很迟钝。在.Net 2.0中可以通过
Background
Work非常方便地进行
Thread
编程,大致的步骤是: 1、调用
Background
Worker
的Run
Worker
Async方法(可以传递参数),它将调用DoWork事件 2、在DoWork的事件响应代码中调用耗时的操作,此例中.
线程封装组件(
Background
Worker
)和线程(
Thread
)
Background
Worker
位于System.ComponentModel下,是一个继承了Component的组件,微软官方的解释为:Executes an operation on a separate
thread
.就是说,开始一个新的线程执行操作。 首先介绍一下
Background
Worker
的相关属性和方法: 属性:
Worker
ReportsProgr
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章