Ответ 1
На самом деле это довольно интересный вопрос и сценарий. В какой-то мере асинхронность - это новая жара (хотя это действительно не все, что новое). Entity Framework 6 попадает в асинхронные методы, и каждый... один... штук... из... документации... внезапно начинает использовать async для всего. Я думаю, что мы здесь немного похожи. MVC 6 поддерживает async для таких вещей, как рендеринг частичных данных, поэтому OMG мы все должны использовать async сейчас.
Async служит одной очень конкретной цели. Он позволяет возвращать активный поток в пул для задания других задач, пока текущая задача находится в состоянии ожидания. Ключевой частью этого является "состояние ожидания". Некоторые задачи просто несовместимы с асинхронными. Работа с процессором, такая как сложный финансовый анализ, никогда не позволяет потоку войти в состояние ожидания, поэтому все эффективно запускается как синхронизация, даже если вы настроили ее как асинхронный. С другой стороны, вещи, связанные с задержкой в сети (запрос ресурса из веб-API, запрос на базу данных и т.д.) Или те, которые связаны с вводом-выводом (чтение/запись файлов и т.д.), Могут иногда иметь периоды, в которых поток ожидая завершения какого-либо другого процесса до того, как он продолжит обработку.
Глядя конкретно на частичный, единственный фрагмент, который не полностью связан с ЦП, читает сам файл вида из файловой системы. Хотя это достаточно технически, чтобы сделать его подходящим для асинхронного использования, сколько времени потребуется, чтобы прочитать, что по существу текстовый файл, который, вероятно, составляет менее 50 КБ. К тому моменту, когда поток будет возвращен в пул, возможно, потребуется время запросить его, поэтому вы фактически используете ресурсы более неэффективно в этот момент.
Длинные и короткие, не попадайте в ловушку "это может быть сделано async, поэтому я должен сделать это async". Каждое использование должно оцениваться с точки зрения того, действительно ли в нем значение. У Async много накладных расходов, и если вы говорите только о нескольких миллисекундах времени ожидания, возможно, это не стоит лишних дополнительных накладных расходов.