我正在尝试在(相当简单的)应用程序中实现异步等待的东西。我的目标是在等待之间更新busyIndicator。
我不知道是什么,但我认为我在理解 async await 东西时遗漏了一些必不可少的东西。
private async void StartTest(object obj)
{
try
{
this.IsBusy = true;
this.BusyMessage = "Init..."
await Task.Delay(7000);
var getData1Task = this.blHandler.GetData1Async();
this.BusyMessage = "Retreiving data...";
this.result1 = await getDeviceInfoTask;
this.result2 = await this.blHandler.GetData2Async();
this.BusyMessage = "Searching...";
this.result3 = await this.blHandler.GetData3();
}
finally
{
this.IsBusy = false;
this.BusyMessage = string.empty;
}
}
busyIndicator 与IsBusy
和绑定BusyMessage
。执行此代码时,我确实让 busyIndicator 显示“ Init... ”,但它永远不会更改为“ Retreiving data... ”或“ Searching... ”。更糟糕的是:ui 在执行 final 时完全冻结GetData3
。