我将应用程序从 WindowsForms 移动到 WPF。我有以下代码:
if (InvokeRequired)
{
Invoke(new Action<Version, Version, XDocument>(ShowUpdateDialog), appVersion, newVersion, doc);
return;
}
如何在 WPF 上编写相同的代码?谢谢
我将应用程序从 WindowsForms 移动到 WPF。我有以下代码:
if (InvokeRequired)
{
Invoke(new Action<Version, Version, XDocument>(ShowUpdateDialog), appVersion, newVersion, doc);
return;
}
如何在 WPF 上编写相同的代码?谢谢
您在这里确实没有提供足够的上下文。在过去使用 Windows 窗体时,当我想做与另一个线程相关的 UI 时,我会检查 InvokeRequired 是否为真,WPF 中的等价物是:
Application.Current.Dispatcher.Invoke(new Action<Version, Version, XDocument>(ShowUpdateDialog), appVersion,
newVersion, doc);
这会将操作推送到将同步执行的 UI 线程上,并且如果您从 UI 线程本身调用它不会导致问题。