据我了解,MVCAsyncController
专门用于处理在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题。新的 Web API 没有类似的AsyncApiController
. 的继承/实现签名也与和ApiController
非常不同。Controller
AsyncController
问题: Web API 是否已经处理了在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题?我错过了自动处理这个的新东西吗?
以供参考:
据我了解,MVCAsyncController
专门用于处理在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题。新的 Web API 没有类似的AsyncApiController
. 的继承/实现签名也与和ApiController
非常不同。Controller
AsyncController
问题: Web API 是否已经处理了在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题?我错过了自动处理这个的新东西吗?
以供参考:
ApiController
实现IHttpController
并且该接口只定义了一个ExecuteAsync
返回 a 的方法 ( ) Task
,因此这意味着它ApiController
是异步的。
MVC 在 MVC 2 中引入了 AsyncController 来支持异步方法。使用异步控制器不会使您的代码神奇地异步。在 MVC 4 中,控制器支持异步方法,因此不需要 AsyncController。异步方法不会用神奇的轻量级线程替换 ASP.NET 或 IIS 线程 - 当您进行异步工作时,您并不总是使用线程。例如,当您发出异步 Web 服务请求时,ASP.NET 不会在异步方法调用和等待之间使用任何线程。请参阅我的教程在 ASP.NET MVC 4 中使用异步方法