sof*_*fun 1 c# wpf xaml backgroundworker
当我使用WinForms时,我会在我的bg_DoWork方法中完成这个:
status.Invoke(new Action(() => { status.Content = e.ToString(); }));
status.Invoke(new Action(() => { status.Refresh(); }));
Run Code Online (Sandbox Code Playgroud)
但是在我的WPF应用程序中,我得到一个错误,Invoke说不存在Label.
任何帮助,将不胜感激.
使用已经内置的功能BackgroundWorker.当您"报告进度"时,它会将您的数据发送到ProgressChanged在UI线程上运行的事件.不需要打电话Invoke().
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
bgWorker.ReportProgress(0, "Some message to display.");
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
status.Content = e.UserState.ToString();
}
Run Code Online (Sandbox Code Playgroud)
确保设置bgWorker.WorkerReportsProgress = true为启用报告进度.