Task<T>স্পষ্টত রূপান্তরযোগ্য Task, সুতরাং কেবল একটি সম্পূর্ণ Task<T>(কোনও Tএবং কোনও মান সহ) পান এবং এটি ব্যবহার করুন। সত্যিকারের ফলাফলটি কোথাও রয়েছে এমন তথ্যটি গোপন করতে আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন।
private static Task completedTask = Task.FromResult(false);
public static Task CompletedTask()
{
return completedTask;
}
মনে রাখবেন যেহেতু আমরা ফলাফলটি প্রকাশ করছি না, এবং কার্যটি সর্বদা সম্পন্ন হয়, তাই আমরা একক টাস্ককে ক্যাশে রাখতে পারি এবং এটি পুনরায় ব্যবহার করতে পারি।
আপনি যদি নেট নেট using.০ ব্যবহার করছেন এবং তা না থাকলে আপনি এটি ব্যবহার FromResultকরে নিজের তৈরি করতে পারেন TaskCompletionSource:
public static Task<T> FromResult<T>(T value)
{
var tcs = new TaskCompletionSource<T>();
tcs.SetResult(value);
return tcs.Task;
}
It seems like the answer I'm getting from everyone is that using a garbage value like this is the correct way. That there isn't a way to do this without the garbage value is disappointing -- oh well.আপনি কি মনে করেন এটিতে কোন সমস্যা রয়েছে? আপনি যদি এককটিকে ক্যাশে করেনTaskতবে আপনার পুরো প্রোগ্রামটি অতিরিক্ত এক বিট মেমরি গ্রহণ করে। এটা কিছুই । এছাড়াও, কেউ এটি না করে একটি সম্পূর্ণ কাজ তৈরি করতে পারে, এটি আরও ভাল কিছু হবে না।