【发布时间】:2012-10-29 10:55:57
【问题描述】:
我检查了 MVC 4.0 中的 System.Web.Mvc.AsyncController,它有注释“提供与 ASP.NET MVC 3 的向后兼容性”。这是否意味着在 MVC 4 中有一个新的异步控制器实现? MVC 4.0 中启用异步控制器以将 I/O 密集操作放在 IIS 请求线程池以外的其他线程池中的正确方法是什么?
【问题讨论】:
我检查了 MVC 4.0 中的 System.Web.Mvc.AsyncController,它有注释“提供与 ASP.NET MVC 3 的向后兼容性”。这是否意味着在 MVC 4 中有一个新的异步控制器实现? MVC 4.0 中启用异步控制器以将 I/O 密集操作放在 IIS 请求线程池以外的其他线程池中的正确方法是什么?
【问题讨论】:
从 ASP.NET MVC 4 开始,您现在可以使用 System.Web.Mvc.Controller 类作为基类并利用 TAP(基于任务的异步模式):
public async Task<ViewResult> Index() {
return View(await GetThingsAsync());
}
请注意,您不必使用 C# 5.0 附带的 async 和 await 关键字,但它们使异步编程更容易、更易于维护。
看看以下文章:
【讨论】:
async 和 await 不是随 C# 4.5 而不是 5.0 提供的吗?