我正在制作一个Wp 8.1应用程序。
我有这个"读者"页。它的构造函数是 -
public Reader()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Enabled;
initalizeTimers();
initAd();
}
和onNvaigatedTo
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%的时间冻结。
你能说出这里出了什么问题吗?以及如何解决它?
答案 0 :(得分:0)
尝试在页面中的事件initalizeReader(x);
引发时调用您的方法Loaded
。
此外,如果此方法调用某些异步函数,也可以异步调用它们。