首页 > 解决方案 > 为什么我们的端点是否异步对消费者来说并不重要?

问题描述

我们的项目是一个 ASP.NET Core Web API。

我最近不得不将我们的同步端点之一更改为异步,并开始怀疑。

为什么我们的端点是否异步对消费者来说并不重要?

Action不就是我们http服务器的最外层吗?或者是否有一个位于此之外的层,它同步等待整个操作完成其工作并返回其结果?

对不起,如果这是一个基本问题。

标签: c#apiasp.net-coreasp.net-web-api

解决方案


Action不就是我们http服务器的最外层吗?

没有; 框架/库代码(无论是 Kestrel、MVC、一些中间件等)本质上知道如何调用您的操作,以及结果是否可以等待(特别是:)[Value]Task[<T>]await操作;然后这通常会返回一个ActionResult,它有机会执行以生成响应 - 这可能再次是异步的,因此也是等待的。这里不需要任何同步等待 - 并且尽一切努力避免同步等待。


推荐阅读