【发布时间】:2020-11-11 21:38:20
【问题描述】:
我刚开始使用async 和await 并试图巩固我的理解。我想保证异步函数完成。
据我了解,await 实际上并不能保证异步函数会运行(但会保存状态并跟踪异步函数的调用者停止的位置)。
所以为了保证异步任务完成,我尝试了Task.Delay(1000),但不认为这是值得生产的代码。我使用的是.Wait(),另一个stackoverflow帖子说这是不好的做法,因为它将同步调用与异步调用混合在一起(.Wait(), .Result()都是同步块)。
在不使用.wait() 或.result() 的情况下如何保证异步调用的完成?
【问题讨论】:
-
不是一个完整的答案,但
.Wait和.Result是等待完成的方法。他们可能不是最好的,但他们工作。另一篇文章可能意味着您通常应该编写代码以允许异步调用,但 IME 有时您只需要进行同步调用,这就是存在这些方法的原因。
标签: .net asynchronous