c# - 为什么我们的端点是否异步对消费者来说并不重要?
问题描述
我们的项目是一个 ASP.NET Core Web API。
我最近不得不将我们的同步端点之一更改为异步,并开始怀疑。
为什么我们的端点是否异步对消费者来说并不重要?
Action不就是我们http服务器的最外层吗?或者是否有一个位于此之外的层,它同步等待整个操作完成其工作并返回其结果?
对不起,如果这是一个基本问题。
解决方案
Action不就是我们http服务器的最外层吗?
没有; 框架/库代码(无论是 Kestrel、MVC、一些中间件等)本质上知道如何调用您的操作,以及结果是否可以等待(特别是:)[Value]Task[<T>]
:await
操作;然后这通常会返回一个ActionResult
,它有机会执行以生成响应 - 这可能再次是异步的,因此也是等待的。这里不需要任何同步等待 - 并且尽一切努力避免同步等待。
推荐阅读
- php - 将 JSON 中的数组作为二维数组的数组或字符串返回
- android - 模拟电池状态
- python - 如何使这个 Python filterwarnings 语句起作用?
- syntax - 混合大小写,但保持一致
- sql - 我无法使用从案例表达式创建的唯一变量列表创建表
- python - Python 'ascii' 编解码器无法在位置 10 编码字符 u'\xf6'
- linux - 并行运行 shell 脚本循环
- powershell - 无法从 ldap 组导出用户和 emplyeeid
- objective-c - 在 macOS 上检测用户注销
- javascript - 页面重新加载后锚标记停止工作