J'implémente une méthode Task<Result> StartSomeTask()
et je connais déjà le résultat avant que la méthode ne soit appelée. Comment créer une tâche <T> déjà terminée?
C'est ce que je fais actuellement:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Y a-t-il une meilleure solution?
ValueTask
pour les tâches terminées (c'est-à-dire pour les valeurs que vous avez déjà pour que le code soit essentiellement synchrone), ce qui vous fera économiser une allocation.