首页 > 解决方案 > 需要在异步调用时等待(),但好的做法是不要阻止异步

问题描述

我刚开始使用async并且await正在努力巩固我的理解。我想保证异步函数完成。

据我了解,await实际上并不能保证异步函数会运行(但会保存状态并跟踪异步函数的调用者停止的位置)。

因此,为了保证异步任务完成,我已经尝试过Task.Delay(1000),但不认为这是值得生产的代码。我正在使用.Wait(),另一篇stackoverflow帖子说这是不好的做法,因为它将同步调用与异步调用混合在一起(.Wait(), .Result()都是同步块)。

如何在不使用.wait()or的情况下保证异步调用的完成.result()

标签: .netasynchronous

解决方案


在不使用 .wait() 或 .result() 的情况下如何保证异步调用的完成?

Wait/Result将同步阻塞,直到异步调用完成。

await将异步等待该异步调用完成。

它们都提供相同级别的“保证”。


推荐阅读