C# BackgroundWorker

BackgroundWorker 主要用于多线程编程,如果某一操作需要时间过长,放在主线程会导致界面卡死,就可以用这个组件,它可以使用用户界面线程中引发的事件进行通信,它主要的属性、方法和事件有:

     属性:

           WorkerReportsProgress :指示BackgroundWorker 能否报告进度更新;

           WorkerSupportsCancellation:指示 BackgroundWorker 是否支持异步取消;

           CancellationPending:指示应用程序是否已请求取消后台操作;

           IsBusy:指示 BackgroundWorker 是否正在运行异步操作;

    方法:

           RunWorkerAsync()和RunWorkerAsync(object argument) : 开始执行后台操作 ;

           CancelAsync():请求取消挂起的后台操作;

           ReportProgress(int percentProgress):报告当前进度,引发ProgressChanged 事件;

    事件:

           DoWorkEventHandler DoWork:调用  RunWorkerAsync方法以后激发此事件;

           ProgressChangedEventHandler ProgressChanged: 调用ReportProgress方法以后激发此事件;

           RunWorkerCompletedEventHandler RunWorkerCompleted:当后台操作已完成、被取消或引发异常时发生;

     以下是从博文 C#使用BackgroundWorker组件经验 中一张有关它里面调用的截图:

有关BackgroundWorker的示例和详细信息,可以参考MSDN ,其中有它各个方法属性事件的介绍,还有两个Demo。

posted @ 2013-05-13 11:14  菜鸟_飞飞  阅读(276)  评论(0编辑  收藏  举报