WinRT中的全球调度员?

时间:2012-11-20 21:11:13

标签: xaml windows-8 microsoft-metro windows-runtime winrt-xaml

我有一些看起来像这样的WP7代码:



using System.Windows;
using System.Windows.Threading;

public static class GlobalDispatcher
{
    public static Dispatcher Current { get { return Deployment.Current.Dispatcher; } }
}

WinRT中的等价物是什么?是否没有全局可访问的Dispatcher(或CoreDispatcher)对象?

3 个答案:

答案 0 :(得分:8)

您需要使用Window.Current.Dispatcher

答案 1 :(得分:6)

只需将其添加为答案,因为它更能解决我认为的问题:

如果应用程序没有聚焦,则Window.Current为null,因此当涉及到用户时会给您带来麻烦;)

  

CoreApplication.MainView.CoreWindow.Dispatcher不是空的......

     

- 杰里米怀特8月4日&13; 13 13:09

答案 2 :(得分:2)

试试这个:

        var dispatcher = CoreApplication.MainView.CoreWindow.Dispatcher;
        await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            try
            {
               //Your code here
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        });