[英]Does the Web API “ApiController” steal threads from the ASP.NET thread pool when new threads are created?
據我了解,MVC專門引入了AsyncController
來處理在創建新線程時避免從ASP.NET線程池中竊取線程的問題。 新的Web API沒有類似的AsyncApiController
。 ApiController
的繼承/實現簽名也與Controller
和AsyncController
完全不同。
問題: Web API是否已解決在創建新線程時避免從ASP.NET線程池中竊取線程的問題? 我是否缺少可以自動處理的新內容?
以供參考:
ApiController
實現IHttpController
並且該接口僅定義一個方法( ExecuteAsync
),該方法返回Task
,這意味着ApiController
是Async。
MVC在MVC 2中引入了AsyncController以支持異步方法。 使用異步控制器不會使您的代碼神奇地異步。 在MVC 4中,控制器支持異步方法,因此不需要AsyncController。 異步方法不會用神奇的輕量級線程替換ASP.NET或IIS線程-在進行異步工作時,您並不總是使用線程。 例如,當您發出異步Web服務請求時,ASP.NET將不在異步方法調用和等待之間使用任何線程。 請參閱我的教程在ASP.NET MVC 4中使用異步方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.