Saya menerapkan metode Task<Result> StartSomeTask()
dan kebetulan mengetahui hasilnya sebelum metode dipanggil. Bagaimana cara membuat Tugas <T> yang sudah selesai?
Inilah yang sedang saya lakukan:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Apakah ada solusi yang lebih baik?
ValueTask
untuk tugas yang diselesaikan (yaitu untuk nilai yang sudah Anda miliki sehingga kode pada dasarnya sinkron), yang akan menghemat alokasi.