Я знаю, что это старый вопрос, но я изо всех сил пытался получить ответ, поэтому вот мои два цента.
Это все равно, что сказать, что если у нас нет лихорадки, я все равно должен принять таблетку. Вы должны использовать Asynch контроллер, если вы видите, что поток потоков на вашем веб-сервере. Веб-сервер IIS поддерживает пул потоков. Поэтому, когда поступает любой запрос, он забирает поток из пула потоков. Если в данный момент все потоки из пула используются и запрос поступает, этот запрос переходит в режим ожидания. Эта ситуация называется «Нить голодом». Вы также можете посмотреть это видео на YouTube, где я продемонстрировал, как голодание потоков MVC выглядит как
http://www.youtube.com/watch?v=wvg13n5V0V0
Когда вы делаете свой контроллер асинхронным, он использует поток, порождает операцию и перемещает этот поток обратно в пул потоков, чтобы его можно было использовать для других запросов, поступающих в приложение MVC. По завершении операции он вытягивает поток из пула потоков и отображает представление.