Ответ 1
Точка ключевого слова await
позволяет работать с асинхронными операциями, не записывая уродливые обратные вызовы.
Использование асинхронных операций помогает избежать потерь потоков потоков потоков.
Объяснение
ASP.Net запускает весь ваш код в потоках из пула управляемых потоков.
Если у вас слишком много медленных запросов, запущенных сразу, пул потоков будет заполнен, а новые запросы должны будут ждать, пока поток станет свободным.
Часто, однако, ваши запросы медленны не потому, что они выполняют вычисление (вычисление), а потому, что они ждут чего-то другого, такого как жесткий диск, сервер базы данных или внешний веб-сервис (IO - или связанный с сетью).
Нет смысла тратить драгоценный поток ниток на простоту, чтобы ждать завершения внешней операции.
Асинхронные операции позволяют запускать операцию, возвращать поток в пул, а затем "просыпаться" в другом потоке пула потоков, когда операция завершена.
Пока операция выполняется, потоки не потребляются.