Estoy implementando un método Task<Result> StartSomeTask()
y ya sé el resultado antes de que se llame al método. ¿Cómo creo una Tarea <T> que ya se ha completado?
Esto es lo que estoy haciendo actualmente:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
¿Hay una mejor solución?
ValueTask
tareas completadas (es decir, valores que ya tiene para que el código sea esencialmente sincrónico), lo que le ahorrará una asignación.