ฉันกำลังใช้วิธีการTask<Result> StartSomeTask()
และบังเอิญรู้ผลลัพธ์อยู่แล้วก่อนที่เมธอดจะถูกเรียกใช้ ฉันจะสร้างงาน <T>ที่เสร็จสมบูรณ์แล้วได้อย่างไร?
นี่คือสิ่งที่ฉันกำลังทำอยู่:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
มีทางออกที่ดีกว่านี้หรือไม่?
ValueTask
งานที่เสร็จสมบูรณ์แล้ว (เช่นสำหรับค่าที่คุณมีอยู่แล้วเพื่อให้รหัสนั้นซิงโครนัสเป็นหลัก) ซึ่งจะช่วยให้คุณประหยัดการจัดสรร