Не обманывайтесь, думая, что, создав контроллеры Async, вы улучшите производительность. В большинстве случаев вы сделаете все хуже. Единственный сценарий, в котором контроллеры Async могут повысить производительность, - это использование IO/Completion Ports. Это может произойти при интенсивных операциях ввода-вывода, таких как вызовы базы данных или веб-службы. Только используя асинхронные версии ADO.NET BeginXXX и EndXXX, вы получите преимущества от асинхронных контроллеров.
Если вы просто создаете асинхронный контроллер и внутри него вы вызываете синхронную операцию с вашим DataContext, вы теряете все преимущества и даже ухудшаете ситуацию.
Еще один полезный сценарий, в котором контроллеры асинхронной связи могут использоваться для повышения производительности, - это когда вы хотите распараллелить несколько операций. Это можно использовать, только если работа, которую вы выполняете, может быть распараллелена.
Я бы порекомендовал вам взглянуть на following article на MSDN. Речь идет о асинхронных ASP.NET-страницах, но понятия точно такие же, как в MVC (где страницы являются контроллерами). Под крышками асинхронные контроллеры реализуются с использованием того же механизма. Поэтому убедитесь, что вы хорошо поняли понятия IO/Completion Ports перед погружением в асинхронное программирование.
Другой совет: не делайте никаких преждевременных оптимизаций. Начните с загрузки тестирования вашего приложения, и только если вы обнаружите, что ваши синхронные вызовы базы данных на самом деле являются узким местом, вы должны взглянуть на асинхронные контроллеры.
Идея заключалась в параллелизации загрузки данных из нескольких таблиц db (отображаемых в EF) (около 10), которые могут выполняться параллельно. – Maxim
Хорошо, в этом случае вы действительно можете воспользоваться асинхронным контроллером. Идея состоит в том, что вы должны использовать задачи внутри действия вашего контроллера для каждого вызова базы данных. Что касается вызова базы данных, будет синхронно и точно так же, как если бы вы не использовали асинхронные контроллеры. –