如何在c#中使用BackgroundWorker时将数据从业务逻辑类发送到UI
本文关键字:业务 UI 数据 BackgroundWorker | 更新日期: 2023-09-27 18:16:16
在我的c#项目中有两个类。一个用于UI,另一个用于业务逻辑(BL)。我在UI项目中使用BackgroundWorker来调用BL中的方法,该方法将处理耗时的任务(数据库备份)。但是,我无法将百分比完成从BL发送到UI。实现这一目标的最佳方式是什么?
注:UI引用BL项目
尝试Dispatcher。调用以写入UI类似的Dispatcher.Invoke(() => Status。
在winforms中,您通常在控件/表单中使用类似于以下的模式:
public void UpdatePercentage(double percentage) {
if (InvokeRequired) {
Invoke(new Action<double>(UpdatePercentage), percentage);
// You could also use BeginInvoke if you don't care about the return value
return;
}
// we are now on the ui thread and can update what we want
myLabel.Text = Math.Round((percentage * 100), 2).ToString();
}
引用:
-
Control.InvokeRequired
-
Control.BeginInvoke
-
Control.Invoke