在我的WPF控件中,我已经通过以下方式实现了异步模式来执行非UI任务。
internal static void Execute(Action action)
{
if (System.Windows.Application.Current != null)
{
if (System.Windows.Application.Current.Dispatcher.CheckAccess())
action();
else
System.Windows.Application.Current.Dispatcher.BeginInvoke(action, null).Wait();
}
}
这适用于WPF应用程序。当我在ElementHost的帮助下在Windows窗体应用程序中使用我的WPF控件时,我无法使用上述方法,因为System.Application.Current将为null。
现在我必须了解以下事项。
1)当控件已托管在Windows窗体应用程序中时,是否可以访问我的WPF控件中的UI线程?
2)如果可能的话,请指导我如何实现它。
答案 0 :(得分:0)
我找到了答案。只是初始化一个Application实例就可以了。
if(Application.Current == null) 新申请();