BackgroundWorker控件使用(一)

BackgroundWorker控件简介

  使用BackgroundWorker控件可以在后台单独的线程上执行操作,通常用于数据库操作、文件下载等相对耗时一般要求后台处理的任务。使用起来比较简单,如果需要后台处理的任务少的话,①在VS中可以直接从工具箱中拖一个BackgroundWorker到主界面中即可,自动命名backgroundWorker1。②或者手动声明初始化BackgroundWorker类新实例:BackgroundWorker bgw=new BackgroundWorker();

  所属命名空间:System.ComponentModel

1、常用属性:

  ①CancellationPending:获取一个值,指示应用程序是否已经请求取消后台操作。如果应用程序已经请求取消后台操作,则为true;否则为false,默认为false。如果CancellationPending为true,则已对BackgroundWorker调用了CancelAsync方法。

  ②IsBusy:获取一个值,指示BackgroundWorker是否正在运行异步操作。如果BackgroundWorker正在运行异步操作,则为true;否则为false。调用RunWorkerAsync时,BackgroundWorker将启动异步操作。

  ③WorkerReportsProgress:获取或设置一个值,该值指示BackgroundWorker能否报告进度更新。若支持进度更新,则为true;否则为false,默认为false。当该属性为true时,用户代码可以调用ReportProgress方法来引发ProgressChanged事件。可在BackgroundWorker属性中设置,也可在代码中编写bgw.WorkerReportsProgress = true;

  ④WorkerSupportsCancellation:获取或设置一个值,该值指示BackgroundWorker是否支持异步取消。若支持取消,则为true,;否则为false,默认为false。当该属性为true时,可以调用CancelAsync方法中断后台操作。可在BackgroundWorker属性中设置,也可在代码中编写bgw.WorkerSupportsCancellation = true;

2、常用方法:

  ①CancelAsync():请求取消挂起的后台操作。CancelAsync 提交终止挂起的后台操作的请求,并将CancellationPending属性设置为true。

  ②Dispose():释放由Component使用的所有资源。

  ③OnDoWork(DoWorkEventArgs):引发DoWork事件。

  ④OnProgressChanged(ProgressChangedEventArgs):引发ProgressChanged事件。

  ⑤OnRunWorkerCompleted(RunWorkerCompletedEventArgs):引发RunWorkerCompleted事件。

  ⑥ReportProgress(Int32)、ReportProgress(Int32,Object):引发ProgressChanged事件。e.g:bgw.ReportProgress(percentProgress); 参数percentProgress表示已完成的后台操作所占的百分比,范围从0%到100%。

  ⑦RunWorkerAsync()、RunWorkerAsync(Object):开始执行后台操作。e.g:bgw.RunWorkerAsync(argument);参数argument表示要在DoWork事件处理程序中执行的后台操作使用的参数。

  注意,所传入的参数最多为一个,若想传入多个参数,则将参数封装到一个类中,通过类的实例来传递;或者若传入的参数为同一类型,则可以将参数写进一个数组,通过传入数组来传递。

3、事件:

  ①Disposed:当通过调用Dispose方法释放组件时发生。

  ②DoWork:调用RunWorkerAsync时发生。在此事件中处理程序中调用耗时的操作。

  ③ProgressChanged:调用ReportProgress时发生。在此事件中处理收到进度更新的通知。

  ④RunWorkerCompleted:当后台操作已完成、被取消或引发异常时发生。在此事件中处理操作完成时收到的通知。

参考自MSDN,其他相关详细见MSDN:https://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker(v=vs.110).aspx

转载于:https://www.cnblogs.com/zyf2014/p/5559459.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值