Я пытаюсь понять, почему и когда я должен использовать действие контроллера async
. В конце концов, когда я использую в нем await
, он будет ждать завершения операции, чтобы вернуть View.ASP.NET MVC4 Async controller - Почему использовать?
Например
public async Task<ActionResult> TryMe()
{
await SomeActionAsync();
return View();
}
В этом случае, если я использую async
или не используя async
, то Действие будет занимать то же время для выполнения.
Если я не пытаюсь запустить не менее 2 медленных операций (которые не зависят друг от друга) параллельно, я не вижу причин использовать действие контроллера async
.
Пожалуйста, исправьте меня, если я ошибаюсь. Я думаю, что здесь что-то не хватает.
Итак, вы говорите, что я должен использовать методы async (для работы, как вы сказали (DB, файловая система, WS и т. Д.)), Только для освобождения пула потоков. Причина, что время выполнения останется неизменным в обоих пути. Лучше ли всегда использовать async, когда я пытаюсь выполнить такие операции? – DorR
@DorR: Да. Обратите внимание, что не все операции обязательно будут иметь асинхронные реализации. Большинство методов, не связанных с CPU, в .Net 4.5 теперь имеют async но сторонние библиотеки менее склонны к этому. – SLaks
Существует отличный разговор от Стива Сандерсона, демонстрирующий функции async в ASP.NET: http://channel9.msdn.com/Events/TechDays/Techdays-2012-the -Netherlands/2287 В этой презентации также четко показано преимущество производительности, которое можно получить от использования методов async. –