关于async/await
最佳做法的大多数文章都建议应避免使用async void
方法,除非该方法是事件处理程序。
在初始化视图期间需要调用异步方法的情况下,有哪些最佳实践?
我已经看到将ViewDidLoad
,ViewWillAppear
,OnCreate
,OnResume
等生命周期方法标记为async void的代码,以便方法可以{ {1}} - 在方法体中编辑 - 但我对此的直觉反应是,如果方法是框架的覆盖是危险的 - 因为消费者可能不知道在内部使用该方法的上下文
另一种方法可能是将await
方法的结果分配给async
。然后在任何相关代码运行前Task
await
:
Task
Foo.cs:
这是正确的方法吗?
答案 0 :(得分:0)
我喜欢这个post on async/await best practices。 imho最大的问题是遇到async void
时异常无法正常处理。
回答你的问题:是否有一个特定的原因,你必须使用等待,或者你可以选择一种不同的方法来解决你的问题?如果可以的话,很好,如果没有,那么“缺点”应该可以忽略不计。