编程语言
首页 > 编程语言> > C# BackgroundWorker使用

C# BackgroundWorker使用

作者:互联网

查询了一下MSDN文档,其中微软就BackgroundWorker类的功能有这么一个描述(英文的,根据个人理解翻译):BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(UI)停止响应的耗时操作(比如文件下载数据库事务等),并且想要一个响应式的UI来反应当前耗时操作的进度。 
可以看的出来,BackgroundWorker组件提供了一种执行异步操作(后台线程)的同时,并且还能妥妥的显示操作进度的解决方案。于是乎,我便深入的了解了一下BackgroundWorker类。针对BackgroundWorker类的部分重要属性和方法进行了一次总结。 

1、属性:

private BackgroundWorker bgWorker = new BackgroundWorker();
bgWorker.WorkerReportsProgress = true;
bgWorker.WorkerSupportsCancellation = true;

 

//在DoWork中键入如下代码
for (int i = 0; i <= 100; i++)
{
    if (bgWorker.CancellationPending)
    {
        e.Cancel = true;
        return;
    }
    else
    {
        bgWorker.ReportProgress(i,"Working");
        System.Threading.Thread.Sleep(10);
    }
}

 

//防止重复执行异步操作引发错误
if (bgWorker.IsBusy)
    return;
bgWorker.RunWorkerAsync();

 

2、方法:

//在启动异步操作的地方键入代码
bgWorker.RunWorkerAsync("hello");
for (int i = 0; i <= 100; i++)
{
    //向ProgressChanged报告进度
    bgWorker.ReportProgress(i,"Working");
    System.Threading.Thread.Sleep(10);
}
//在需要执行取消操作的地方键入以下代码
bgWorker.CancelAsync();

 

3、事件:

标签:异步,C#,DoWork,BackgroundWorker,使用,操作,执行,属性
来源: https://blog.csdn.net/wangtao19932008/article/details/111409042