async
не делает ничего быстрее, это функция масштабируемости, которая косвенно может повысить производительность, но для небольшого сайта, вероятно, нет.
Что касается вашего вопроса, нет смысла делатьэтот вызов async
, его рабочая нагрузка CPU , он не будет использовать порт завершения ввода-вывода и будет использовать поток пула потоков и блокировать его (из-за отсутствия лучшего слова)независимо от того, каким образом вы это делаете.Короче говоря, не существует операции IO Bound для async
, чтобы она действовала по-настоящему волшебно
Конечно, вы могли бы сделать это
return await Task.Run(() =>
{
ulong lastItem = (ulong)number;
ulong fact = 1;
for (ulong i = 1; i < lastItem; i++)
{
fact = fact * i;
}
return fact;
});
, но что происходит?просто освобождаем поток пула потоков, чтобы использовать / переключаться на другой, а затем обратно ... это мало что дает.
IMO, вам просто лучше оставить все как есть.