我正在努力设计一个在执行长时间运行的任务时保持响应的 UI。
为此,我在 VS2012 中创建了一个简单的应用程序,并在其中添加了以下类:
using System.Threading.Tasks;
namespace TaskTest
{
class Class1
{
public async Task<int> Async()
{
//simulate a long running process
for (long x = 0; x < long.MaxValue; x++) { }
return 1;
}
}
}
然后我修改了主页的 LoadState() 方法:
protected override async void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
await DoLongRunningProcess();
}
private async Task DoLongRunningProcess()
{
var id = 0;
id = await new Class1().Async();
await new MessageDialog(id + "").ShowAsync();
}
我希望页面在该过程执行时保持响应。但是,当我运行此代码时,页面需要很长时间才能加载。我究竟做错了什么?
TIA