0

据我了解,MVCAsyncController专门用于处理在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题。新的 Web API 没有类似的AsyncApiController. 的继承/实现签名也与和ApiController非常不同。ControllerAsyncController

问题: Web API 是否已经处理了在创建新线程时避免从 ASP.NET 线程池中窃取线程的问题?我错过了自动处理这个的新东西吗?

以供参考:

4

2 回答 2

6

ApiController实现IHttpController并且该接口只定义了一个ExecuteAsync返回 a 的方法 ( ) Task,因此这意味着它ApiController是异步的。

于 2012-06-20T21:59:02.227 回答
3

MVC 在 MVC 2 中引入了 AsyncController 来支持异步方法。使用异步控制器不会使您的代码神奇地异步。在 MVC 4 中,控制器支持异步方法,因此不需要 AsyncController。异步方法不会用神奇的轻量级线程替换 ASP.NET 或 IIS 线程 - 当您进行异步工作时,您并不总是使用线程。例如,当您发出异步 Web 服务请求时,ASP.NET 不会在异步方法调用和等待之间使用任何线程。请参阅我的教程在 ASP.NET MVC 4 中使用异步方法

于 2012-06-20T23:44:41.333 回答