Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 当没有对UI对象和Application.Current.Dispatcher的引用为空时,如何访问Dispatcher?_Wpf_Mfc_Dispatcher - Fatal编程技术网

Wpf 当没有对UI对象和Application.Current.Dispatcher的引用为空时,如何访问Dispatcher?

Wpf 当没有对UI对象和Application.Current.Dispatcher的引用为空时,如何访问Dispatcher?,wpf,mfc,dispatcher,Wpf,Mfc,Dispatcher,我从一个非UI线程(WPF控件之外的另一个线程)调用它: 但是在我的例子中,Application.Current是null(托管在MFC应用程序中的WPF对象) 唯一的解决方案是将一个DispatcherObject实例作为参数传递,但这会在其他地方引起许多修改,并使其不是调用代码的干净解决方案 有什么想法吗?我通过在第一次使用类时将类存储作为对调度程序的有效引用(也将其设置为单例),解决了这个问题 这不是最好的解决方案,但更糟糕的是…我在第一次使用类时,通过使类存储成为对调度程序的有效引用(

我从一个非UI线程(WPF控件之外的另一个线程)调用它:

但是在我的例子中,
Application.Current
null
(托管在MFC应用程序中的WPF对象)

唯一的解决方案是将一个
DispatcherObject
实例作为参数传递,但这会在其他地方引起许多修改,并使其不是调用代码的干净解决方案


有什么想法吗?

我通过在第一次使用类时将类存储作为对调度程序的有效引用(也将其设置为单例),解决了这个问题


这不是最好的解决方案,但更糟糕的是…

我在第一次使用类时,通过使类存储成为对调度程序的有效引用(使其成为单例),解决了这个问题


不是最好的解决方案,但更糟糕的是…

您是否将FontFamily绑定到某个地方?你能描述一下你想做什么吗?它主要用来阅读来自Fontfamily的信息,但除了重点之外。。。问题是我的方法可以在WPF UI线程之外调用,在我的应用程序中也是如此。Current总是空的,所以我需要另一种方法来找到一个有效的Dispatcher…你是否在某个地方绑定了FontFamily?你能描述一下你想做什么吗?它主要用来阅读来自Fontfamily的信息,但除了重点之外。。。问题是我的方法可以在WPF UI线程之外调用,在我的应用程序中也是如此。Current总是空的,所以我需要另一种方法来找到有效的Dispatcher。。。
public static FontFamily GetDefaultFontFamily()
{
    FontFamily fontFamily = null;

    Application.Current.Dispatcher.Invoke(
        new Action(
            delegate
            {
                fontFamily = new TextBlock().FontFamily;
            }));

    return fontFamily;
}