在我的方法" sendconfig_dowork(object sender,DoWorkEventArgs e)"我喜欢在完成时向用户显示窗口。
当方法是"不是外部"我这样定义并且工作正常:
var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault();
if (window != null)
await window.ShowMessageAsync(@"Operation successed", @"Operation successed");
但这不适用于&#34;外部&#34;像背景工人的方法。我无法弄清楚我应该如何定义内部背景工作者的工作方式?或者如何定义它的最佳方式?
程序是用C#WPF和MVVM编写的。谢谢!如有任何问题,请询问。
答案 0 :(得分:0)
您必须在UI线程中调用ShowMessageAsync
。例如。如果您的目标是.NET Framework 4.5,则可以使用应用程序的调度程序:
var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault();
if (window != null) {
Application.Current.Dispatcher.InvokeAsync(() => window.ShowMessageAsync(@"Operation successed", @"Operation successed");
}