构造函数中能否调用异步方法?
在尝试将异步代码整合到类构造函数中时,这个问题经常出现。具体来说,本例的目标是在对象实例化期间调用 getWritings()
方法(该方法解析 JSON 数据)。
问题所在
最初,直接在构造函数中调用 getWritings()
并将其设为异步方法会导致空返回值和空的 LongListView
。尝试通过 getWritings().Result
获取结果来解决此问题,导致 UI 线程阻塞。
解决方案
推荐的方法是设计应用程序以处理数据检索的异步特性。构造函数应设置一个视图以指示正在下载数据,实际的数据更新应在下载完成后发生。
关于此主题的其他资源包括一篇关于异步构造函数的博文,一篇关于 MVVM 场景中异步数据绑定的 MSDN 文章,以及一篇关于异步最佳实践的 MSDN 文章,其中强调了避免使用 async void
方法的重要性。
以上是可以在构造函数中调用异步方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!