मैं एक विधि लागू कर रहा हूं 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
पूर्ण कार्यों के लिए है (अर्थात आपके पास पहले से ही ऐसा कोड अनिवार्य रूप से समकालिक है), जो आपको आवंटन से बचाएगा।