BackgroundWorker

BackgroundWorker BgWorker = new BackgroundWorker();
    BackgroundWorker BgWorker = new BackgroundWorker();
     /* WorkerReportsProgress 
             bool类型,指示BackgroundWorker是否可以报告进度更新。
             当该属性值为True是,将可以成功调用ReportProgress方法,否则将引发InvalidOperationException异常。 */
            BgWorker.WorkerReportsProgress = true;

            /* WorkerSupportsCancellation 
            bool类型,指示BackgroundWorker是否支持异步取消操作。
            当该属性值为True是,将可以成功调用CancelAsync方法,否则将引发InvalidOperationException异常。*/
            BgWorker.WorkerSupportsCancellation = true;
            BgWorker.DoWork += BgWorker_DoWork;

            /*
             DoWork 
             用于承载异步操作。当调用BackgroundWorker.RunWorkerAsync()时触发。 
             需要注意的是,由于DoWork事件内部的代码运行在非UI线程之上,所以在DoWork事件内部应避免于用户界面交互,
            而于用户界面交互的操作应放置在ProgressChanged和RunWorkerCompleted事件中。
            */
            BgWorker.ProgressChanged += BgWorker_ProgressChanged;

            /*
             * ProgressChanged 
             当调用BackgroundWorker.ReportProgress(int percentProgress)方式时触发该事件。 
             该事件的ProgressChangedEventArgs.ProgressPercentage属性可以接收来自ReportProgress方法传递的percentProgress参数值,
            ProgressChangedEventArgs.UserState属性可以接收来自ReportProgress方法传递的userState参数。

             * 
             * */


            BgWorker.RunWorkerCompleted += BgWorker_RunWorkerCompleted;

            /*
            RunWorkerCompleted
            异步操作完成或取消时执行的操作,当调用DoWork事件执行完成时触发。 
            该事件的RunWorkerCompletedEventArgs参数包含三个常用的属性Error,Cancelled,Result。
            其中,Error表示在执行异步操作期间发生的错误;
            Cancelled用于判断用户是否取消了异步操作;
            Result属性接收来自DoWork事件的DoWorkEventArgs参数的Result属性值,可用于传递异步操作的执行结果。
           
                */
                base.Closed += WinProgress_Closed;

          /*  IsBusy
           bool类型,指示BackgroundWorker是否正在执行一个异步操作。
          此属性通常放在BackgroundWorker.RunWorkerAsync()方法之前,避免多次调用RunWorkerAsync()方法引发异常。
          当执行BackgroundWorker.RunWorkerAsync()方法是,该属性值将变为True。
          */
            if (!BgWorker.IsBusy)
            {
                /* RunWorkerAsync() 开始执行一个后台操作。
                调用该方法后,将触发BackgroundWorker.DoWork事件,并以异步的方式执行DoWork事件中的代码。  */
                BgWorker.RunWorkerAsync();
            } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值