有没有什么好笑的async OnNavigatedTo?

时间:2014-05-31 19:30:01

标签: c# windows-8

我有两页; MainPageSettingsPage

在MainPage中,在OnNavigatedTo方法中,我检查了一些独立的存储空间,如果它不匹配,我希望应用程序导航到SettingsPage

OnNavigatedTo标记为async,因为我正在使用等待的方法来检查变量。有效的是它读取变量并报告它需要导航,所以我调用

this.Frame.Navigate(typeof(SettingsPage));

没有抛出任何错误。但是70%++的时间我称之为Navigate方法它什么也没做!在不同于Windows Phone的页面之间导航的方式是什么?我在那里做了完全相同的事情,但使用的是网址而不是typeof(XXXPage)

是什么给出的?它似乎不遵循async标志,因为它有时会设法导航到SettingsPage ...但是70%以上的时间似乎应用程序忽略async OnNavigatedTo并运行应用程序同步。

我在导航事件上放置了一个Debug.WriteLine,每次调用Navigate(typeof(SettingsPage)) ......但似乎在某个地方失败了?

1 个答案:

答案 0 :(得分:1)

我遇到过同样的行为。以低优先级对新导航进行排队,使第一页加载和应用初始化有机会完全完成。

public async virtual Task NavigateAsync(Type sourcePageType)
{
    await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
        {
            ((Frame)Window.Current.Content).Navigate(sourcePageType);
        });
}