我正在构建一个 Windows 应用商店应用,我有一些代码需要发布到 UI 线程。
为此,我想检索 CoreDispatcher 并使用它来发布代码。
似乎有几种方法可以做到这一点:
// First way
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.Dispatcher;
// Second way
Window.Current.Dispatcher;
我想知道哪个是正确的?或者如果两者是等价的?
最佳答案
这是首选方式:
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
// Your UI update code goes here!
});
这样做的好处是它获取主要的 CoreApplicationView
,因此始终可用。更多详情 here .
您可以使用两种替代方法。
第一个选择
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.Dispatcher
这会获取应用程序的事件 View ,但如果没有 View 被激活,这将为您提供 null。更多详情 here .
第二种选择
Window.Current.Dispatcher
此解决方案在从另一个线程调用时将不起作用,因为它返回 null 而不是 UI Dispatcher。更多详情 here .
关于c# - 在 Windows 应用商店应用程序中获取 CoreDispatcher 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477190/