在DotNet1.1和2.0中一致地使用多线程

博客介绍使用多线程可完成异步、显示进度、取消任务等工作。在.NET中,有BackgroundWorker组件能实现类似功能,它公开三个事件、拥有两个属性,使用简单。.NET 1.1的组件包含在IssueVision中,.NET 2.0的在System.ComponentModel.命名空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了体现良好的用户体现,你可能要使用多线程.

单线程在完成一个冗长任务时会让界面停止绘画.异步调用则产生多个线程来完成任务,却有机会更新界面.

在.NET1.1中,使用多线程是很麻烦的事情,你要声明委托,实现函数,进行异步调用,在回调函数中了解工作状态.代码下载:

这很麻烦,实际上我们使用多线程,就是为了1.完成一个异步的任务,2.在界面上显示进度的任务,3.用户可以取消任务.既然如此,为什么要这么麻烦呢?在.NET2.0中就有一个组件,可以完成类似的任务了!而且,有人实现了1.1的组件,它的名字就是BackgroundWorker.它使用起来非常简单,组件公开了三个事件,可以完成执行任务,显示进度,取消任务.拥有两个属性.
   this.m_BackgroundWorker.WorkerReportsProgress = false;
   this.m_BackgroundWorker.WorkerSupportsCancellation = true;
   this.m_BackgroundWorker.DoWork += new ThreadHelper.DoWorkEventHandler(this.OnDoWork);
   this.m_BackgroundWorker.RunWorkerCompleted += new ThreadHelper.RunWorkerCompletedEventHandler(this.OnCompleted);
这个组件和.NET2.0的一样!用法都相同.这就方便执行行后台线程了!

1.1的组件包含在 IssueVision中.下载
2.0的在System.ComponentModel.命名空间(也是BackgroundWorker名称都一样). 2.0例子请下载



链接:

Creating a better BackgroundWorker: CancelImmediately and other goodies

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值