我是一位WP 8.1应用程序开发者。
我正在制作一个“阅读器”页面。它的构造函数如下:
public Reader()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Enabled;
initalizeTimers();
initAd();
}
并且onNavigatedTo
protected override void OnNavigatedTo(NavigationEventArgs e)
{
HardwareButtons.BackPressed += Hardware_backPressedLocal;
var x = (Tuple<int, string, Global.FileType>)e.Parameter;
//load settings here
loadColorSchemes();
setStatusBarColor();
if (e.NavigationMode == NavigationMode.Back)
{
readerVm.refreshWebView();
return;
}
if (x != null)
{
initalizeReader(x);
}
}
initalizeReader()
是一个异步方法。页面前面有一个网格用于显示等待消息,而 initializeReader 方法会隐藏该网格。
问题:
点击按钮调用 Frame.Navigate()
方法到阅读器页面时,有时会出现等待网格并在一段时间后(预期)隐藏,而其他情况下 UI 会冻结,然后阅读器页面加载时等待网格已经隐藏。而且 70-80% 的时间 UI 会冻结。请问这里出了什么问题?如何解决?