В приложении ASP.Net мы склонны оценивать запросы / сек за отдельные периоды ответа1 - конечно, если мы напрямую торгуем друг против друга. Поэтому мы не пытаемся сосредоточиться на мощности CPU при удовлетворении одного запроса.
И действительно, фокусирование большей мощности процессора на задаче - это то, что Task.Run
для - это для когда у вас есть четкий фрагмент работы, вы не можете сделать это в текущем потоке (потому что у него есть своя собственная работа), и когда вы можете использовать как можно больше CPU.
В ASP.Net, где async светит, когда мы имеем дело с I / O. Неприятные медленные вещи, такие как доступ к файловой системе или разговор с базой данных по сети. И удивительно, что на самом низком уровне система ввода-вывода окон уже асинхронна, и мы не должны посвящать поток только ожиданию завершения дел .
So , вы не будете использовать Task.Run
. Вместо этого вы будете искать объекты, связанные с I / O, которые выставляют методы Async
. И эти методы сами по себе, как указано выше, не будут использовать Task.Run
. Это позволяет нам прекратить использование любых потоков для обслуживания нашего конкретного запроса, пока не будет сделано никакой работы, и поэтому улучшите метрику запросов /.
1Это обобщение, но сайты с одним пользователем / запросом ASP.Net редко встречаются в моем опыте.