zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    (八)断路器-Hystrix
    WINDOWS SERVER 2012 虚拟机 忘记密码后
    IIS FTP :在组合的密钥属性“users,roles,permissions”分别设置为“*,Read,Write”时,无法添加类型为“add”的重复集合项
    log4j 日志组件
    IDEA缓存
    com.alibaba.druid.pool.DruidDataSource
    EHCache CacheManager
    webservice调试(XML参数) Wizdler PostMan
    jar类库加载顺序
    JAXB工具
  • 原文地址:https://www.cnblogs.com/zyf2014/p/5559459.html
Copyright © 2011-2022 走看看