Когда я прочитал статью MSDN Используя асинхронные методы в ASP.NET MVC 4, я делаю вывод, что я всегда должен использовать async для ожидания Операции с привязкой к I/O.
Рассмотрим следующий код, в котором movieManager предоставляет методы async для ORM, таких как Entity Framework.
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);
}
}
- Будет ли это всегда давать мне лучшую масштабируемость и/или производительность?
- Как я могу измерить это?
- Почему это не используется в "реальном мире"?
- Как насчет синхронизации контекста?
- Неужели это так плохо, что я не должен использовать async-I/O в ASP.NET MVC?
Я знаю, что это много вопросов, но литература по этой теме имеет противоречивые выводы. Некоторые говорят, что вы всегда должны использовать async для зависимых от ввода-вывода задач, другие говорят, что вы не должны использовать async в приложениях ASP.NET вообще.