我应该在 ASP.NET MVC 4 中使用 AsyncController 吗?
Posted
技术标签:
【中文标题】我应该在 ASP.NET MVC 4 中使用 AsyncController 吗?【英文标题】:Should I use AsyncController at ASP.NET MVC 4? 【发布时间】:2012-11-23 04:20:20 【问题描述】:这个类有这样的描述:
Provided for backward compatibility with ASP.NET MVC 3.
来源只是:
public abstract class AsyncController : Controller
我在 MSDN 上找不到任何关于弃用此类的文档。我应该将 AsyncController 的使用替换为 Controller 吗?
【问题讨论】:
【参考方案1】:我应该在 ASP.NET MVC 4 中使用 AsyncController 吗?
没有。
我应该将 AsyncController 的使用替换为 Controller 吗?
是的,异步操作在 asp.net-mvc 4 中以新的方式实现,使用 Task Class
结合 .NET 4.5 的 ASP.NET MVC 4 控制器类启用 您编写返回类型对象的异步操作方法 任务。 .NET Framework 4 引入了异步 称为任务的编程概念和 ASP.NET MVC 4 支持 任务。任务由任务类型和相关类型表示 System.Threading.Tasks 命名空间。 .NET Framework 4.5 建立在 使用 await 和 async 关键字的这种异步支持 使用 Task 对象比以前的异步要简单得多 方法。 await 关键字是用于指示的语法简写 一段代码应该异步等待另一段 代码。 async 关键字表示可用于标记的提示 方法作为基于任务的异步方法。等待的组合, 异步,Task 对象让你更容易编写 .NET 4.5 中的异步代码。异步方法的新模型 被称为基于任务的异步模式(TAP)。本教程 假设您对使用异步编程有一定的了解 await 和 async 关键字以及 Task 命名空间。
更多阅读请访问Using Asynchronous Methods in ASP.NET MVC 4
【讨论】:
那么,答案是否定的?正确的?我不应该使用 AsyncController。我应该使用 Controller,因为“结合 .NET 4.5 的 ASP.NET MVC 4 Controller 类使您能够编写返回 Task 类型对象的异步操作方法” 是的,答案是“否”。如果使用 .NET 4.5,使用 Tasks 比继承 AsyncController 更简单、更好 如果不需要回调,Parallel.Invoke 似乎更简单。 TPL 给线程池带来了新问题,您应该注意线程不足等可伸缩性问题以上是关于我应该在 ASP.NET MVC 4 中使用 AsyncController 吗?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 4 自定义 HTML Helpers 文件夹位置
ASP.NET MVC 4(测试版)中 HTML-5 data-* 属性的使用是不是中断?