Задать вопрос
@marklondon

Можно ли так использовать Task.FromResult и имеет ли это вообще смысл?

Попался мне на глаза вот такой код. Как я понимаю, человек хочет использовать синхронную операцию в асинхронном методе (первый вопрос.. зачем если есть другие методы с асинхронной поддержкой, но ладно, возможно это не ошибка), поэтому он использует Task.FromResult. Но зачем использовать await? FromResult же должен использоваться как раз для того, чтобы избежать создания машины состояний, которая появляется при async/await. Не будет ли эта связка await+TaskResult очень тяжёлой по производительности и бесполезной в контексте данной задачи метода репозитория?
Код

public async Task> GetUsers(string id)
{
return await Task.FromResult(Users.Where(x => x.Id == id));
}
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Средний 3 комментария
Решение пользователя Василий Банников К ответам на вопрос (2)
По производительности будет +/- одно и то же, но вариант с await чуть памяти сожрёт.
В целом похоже больше на ошибку.
Ответ написан
Комментировать