Я реализую метод Task<Result> StartSomeTask()
и знаю результат еще до вызова метода. Как мне создать Task <T> , который уже выполнен?
Вот чем я сейчас занимаюсь:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Есть ли лучшее решение?
ValueTask
для завершенных задач (т.е. для значений, которые у вас уже есть, так что код по существу синхронный), что сэкономит вам выделение.