【发布时间】:2014-04-22 18:07:22
【问题描述】:
当我阅读 MSDN 文章 Using Asynchronous Methods in ASP.NET MVC 4 时,我得出的结论是,我应该始终对 I/O 绑定操作使用异步等待。
考虑以下代码,其中 movieManager 公开了 ORM 的异步方法,例如实体框架。
public class MovieController : Controller
{
// fields and constructors
public async Task<ActionResult> Index()
{
var movies = await movieManager.listAsync();
return View(movies);
}
public async Task<ActionResult> Details(int id)
{
var movie = await movieManager.FindAsync(id);
return View(movie);
}
}
- 这总是会给我更好的可扩展性和/或性能吗?
- 如何测量这个?
- 为什么不在“现实世界”中使用它?
- 上下文同步怎么样?
- 有那么糟糕,我不应该在 ASP.NET MVC 中使用异步 I/O 吗?
我知道这些问题很多,但是关于这个主题的文献有相互矛盾的结论。有人说您应该始终对依赖 I/O 的任务使用异步,其他人则说您根本不应该在 ASP.NET 应用程序中使用异步。
【问题讨论】:
-
这可能是一种广泛的方式。 1 - 可能,但除非您确实存在可伸缩性问题,否则您不会看到更改;如果在 SO 之外有巨大的主题,则测量性能... 2 - 任何数字/参考? 3 - 任何参考/解释?
标签: c# io task-parallel-library async-await asp.net-mvc-5