一个实用的多线程类 System.ComponentModel.BackgroundWorker

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:48   685   0

可以处理进度,完成通知

mworker = new BackgroundWorker();
mworker.DoWork += new DoWorkEventHandler(OnWork);
mworker.WorkerReportsProgress = true;
mworker.ProgressChanged += new ProgressChangedEventHandler(OnWorkProgressChanged);
mworker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(OnWorkCompleted);
mworker.WorkerSupportsCancellation = true;

mworker.RunWorkerAsync();

在 OnWork 的实现


  

void OnWork(object sender, DoWorkEventArgs e)
{
while (true)
{
// …



if (…)
break;

// …
}
}


在 Complete 时,应该判断多种结束情况

void OnMeasureCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
}
else if (e.Cancelled)
{
}
else
{
}
}

-

转载于:https://www.cnblogs.com/yapzhang/archive/2011/06/08/2075166.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP