Estou implementando um método Task<Result> StartSomeTask()
e já sei o resultado antes que o método seja chamado. Como crio uma tarefa <T> que já foi concluída?
Isto é o que estou fazendo atualmente:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Existe uma solução melhor?
ValueTask
tarefas concluídas (ou seja, valores que você já possui para que o código seja essencialmente síncrono), o que salvará uma alocação.