我正在构建一个 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 http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.core.coreapplication.mainview.aspx.
您可以使用两种替代方案。
第一种选择
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.Dispatcher
这会获取应用程序的活动视图,但这会给你null,如果没有激活任何视图。更多细节here http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.core.coreapplication.getcurrentview.aspx.
第二种选择
Window.Current.Dispatcher
当从另一个线程返回时调用该解决方案时,该解决方案将不起作用null而不是用户界面调度程序。更多细节here http://www.sandor.fr/en/2012/11/26/lastuce-du-lundi-acceder-au-dispatcher-dans-une-application-winrt/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)