社区
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的效率那个高一些?
...全文
367
7
打赏
收藏
BackgroundWorker 和Thread 的关系
一个小程序需要用到一个6线程,我目前是用类似下面的程序来分别运行5个子线程 Dim t As New Thread(AddressOf t1) t.Start() 如果我要用BackgroundWorker,是不是向窗体中拖入6个BackGroundWorker控件? BackgroundWorker 和Thread的效率那个高一些?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
2. **OperationQueue**: 类似于GCD,但提供了更多的控制和灵活性,如依赖
关系
、优先级、取消操作等。 3. **NSOperation/NSOperationQueue**: 这些是面向对象的版本,允许创建自定义操作类,并能与其他操作进行协调...
C# 委托 线程 事件的事例代码
在C#中,可以使用`System.
Thread
ing.
Thread
`类来创建和管理线程。例如: ```csharp
Thread
new
Thread
= new
Thread
(new
Thread
Start(MyMethod)); new
Thread
.Start(); ``` 在这里,`MyMethod`是我们希望在线程上运行...
c#多线程与ui响应
常用的多线程类包括`
Thread
`类和`
Background
Worker
`类等。 - **
Thread
类**:这是.NET框架中最基本的多线程支持类。通过创建`
Thread
`对象并调用其`Start()`方法来启动一个新线程。示例代码如下: ```csharp ...
Thread
ing in C#
C#程序启动时会自动由CLR(Common Language Runtime)和操作系统创建一个主线程("main"
thread
),并通过创建额外的线程使其成为多线程程序。 #### 如何工作 多线程使程序能够同时执行多个任务。例如,一个应用程序...
多线程进度条(事件触发)
在`ProgressbarSample.sln`和`ProgressbarSample.suo`中,`sln`文件是解决方案文件,包含了项目的信息和依赖
关系
,而`.suo`文件是用户特定的设置,存储了Visual Studio IDE的相关配置。`CoreLibrary`可能是一个包含...
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章