我有两个任务,其中一个我想在下一个任务开始之前完成。我已经尝试将这些转换为任务并使用task.Wait()但它们仍然在错误的时间执行。使用短暂的睡眠,但我想避免睡觉。
private async void BuildNextData(object sender, RoutedEventArgs e)
{
try
{
await this._LocalCluster.DataItem(this._LocalSceneIID.IID.Value, ".Data.DataPopupNext", null, null, null);
System.Threading.Thread.Sleep(500);
object o = await GetVentuxIndex(".Data.DataPopupCurrentIndex");
Workspace.This.MainJsonBond.SelectedfilteredPopupWorries = Workspace.This.MainJsonBond.filteredPopupWorries[Int32.Parse(o.ToString())];
}
catch (Exception ex)
{
}
}
答案 0 :(得分:3)
除了没有Sleep()
之外,这与你的方式完全相同。 await
表示"等待此操作完成后再继续"。
如果"发送和接收" DataItem
方法一旦停止等待就没有完全完成,那就是该方法中代码的错误。您将不得不接受负责该主机应用程序的任何人。你无能为力。这不是等待任务的工作方式。