标记返回视图生命周期方法(如ViewDidLoad / OnCreate async)是不好的做法?

时间:2016-10-18 21:59:46

标签: xamarin xamarin.ios xamarin.android async-await

关于async/await最佳做法的大多数文章都建议应避免使用async void方法,除非该方法是事件处理程序。

在初始化视图期间需要调用异步方法的情况下,有哪些最佳实践?

我已经看到将ViewDidLoadViewWillAppearOnCreateOnResume等生命周期方法标记为async void的代码,以便方法可以{ {1}} - 在方法体中编辑 - 但我对此的直觉反应是,如果方法是框架的覆盖是危险的 - 因为消费者可能不知道在内部使用该方法的上下文

另一种方法可能是将await方法的结果分配给async。然后在任何相关代码运行前Task await

Task
Foo.cs:

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我喜欢这个post on async/await best practices。 imho最大的问题是遇到async void时异常无法正常处理。

回答你的问题:是否有一个特定的原因,你必须使用等待,或者你可以选择一种不同的方法来解决你的问题?如果可以的话,很好,如果没有,那么“缺点”应该可以忽略不计。