Ich implementiere eine Methode Task<Result> StartSomeTask()
und kenne das Ergebnis bereits vor dem Aufruf der Methode. Wie erstelle ich eine Aufgabe <T> , die bereits abgeschlossen ist?
Das mache ich gerade:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Gibt es eine bessere Lösung?
ValueTask
für abgeschlossene Aufgaben gibt (dh für Werte, die Sie bereits haben, sodass der Code im Wesentlichen synchron ist), wodurch Sie eine Zuordnung sparen.