用法:
for (int i = 0; i <= 100; i++)
{
//向ProgressChanged报告进度
bgWorker.ReportProgress(i,"Working");
System.Threading.Thread.Sleep(10);
}
CancelAsync()
请求取消当前正在执行的异步操作。调用该方法将使BackgroundWorker.CancellationPending属性设置为True。
但需要注意的是,并非每次调用CancelAsync()都能确保异步操作,CancelAsync()通常不适用于取消一个紧密执行的操作,更适用于在循环体中执行。
用法:
//在需要执行取消操作的地方键入以下代码
bgWorker.CancelAsync();
3、事件:
DoWork
用于承载异步操作。当调用BackgroundWorker.RunWorkerAsync()时触发。
需要注意的是,由于DoWork事件内部的代码运行在非UI线程之上,所以在DoWork事件内部应避免于用户界面交互,而于用户界面交互的操作应放置在ProgressChanged和RunWorkerCompleted事件中。
ProgressChanged
当调用BackgroundWorker.ReportProgress(int percentProgress)方式时触发该事件。
该事件的ProgressChangedEventArgs.ProgressPercentage属性可以接收来自ReportProgress方法传递的percentProgress参数值,ProgressChangedEventArgs.UserState属性可以接收来自ReportProgress方法传递的userState参数。
RunWorkerCompleted
异步操作完成或取消时执行的操作,当调用DoWork事件执行完成时触发。










