我正在构建一个xamarin android应用程序但不能使用async await。
执行被卡住了很长时间,然后最终抛出异常消息: System.Threading.Tasks.TaskCanceledException:任务被取消
首先我认为它会被卡住,因为我不使用ConfigureAwait(false),但使用它并不能解决任何问题。
代码:
self.collide_up = False
self.collide_down = False
self.collide_left = False
self.collide_right = False
self.collide_list = [self.collide_up, self.collide_down, self.collide_left, self.collide_right]
堆栈跟踪:
protected override async void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
await ProcessData().ConfigureAwait(false);
}
private async Task ProcessData()
{
await Task.Delay(new TimeSpan(0, 0, 2)).ConfigureAwait(false); // 2 seconds
}
答案 0 :(得分:1)
您可以将其添加到您的代码中,然后将该消息作为评论说明。
try
{
await Task.Delay(new TimeSpan(0, 0, 2)).ConfigureAwait(false);
}
catch (System.Threading.Tasks.TaskCanceledException ex)
{
MessageBox.Show(ex.Message);
}
在catch循环中,只要您能够查看错误消息,就可以使用任何想要处理错误消息的方法。 此外,将所有这些放入try和catch循环中是值得的,这样您就可以检查哪个部分出现错误。