我正在编写一个对 web 服务有很多调用的 Metro 应用程序。有时网络服务有点慢。而且我不想在一个页面内等待,直到我的数据被下载。
但是,在我的数据加载之前,我的后退按钮被禁用。这是一个大问题。
所以我尝试了:
try
{
await Task.Run(() =>
{
Dispatcher.RunAsync(CoreDispatcherPriority.High,
() => ViewModel.InitAsync(date)).AsTask(_cts.Token);
}, _cts.Token);
}catch(Exception e)
{
Debug.WriteLine("HomePage, LoadState : "+e);
}
笔记;
我使用 Task.Run 能够使用取消令牌。Dispatcher.RunAsync 应该允许我不冻结我的 UI。这在页面 LoadState 中使用。
我该如何解决这个问题?
问候。
更新为(不能解决我的问题):
try
{
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
ViewModel.InitAsync(date)).AsTask(_cts.Token);
}catch(Exception e)
{
Debug.WriteLine("HomePage, LoadState : "+e);
}