Implementuję metodę Task<Result> StartSomeTask()
i tak się składa, że znam wynik jeszcze przed wywołaniem metody. Jak utworzyć zadanie <T>, które zostało już zakończone?
Oto, co obecnie robię:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Czy jest lepsze rozwiązanie?
ValueTask
dla ukończonych zadań (tj. Dla wartości, które już masz, więc kod jest zasadniczo synchroniczny), co pozwoli Ci zaoszczędzić przydział.