কোন পরিস্থিতিতে কোনটি ব্যবহার করতে চাইবে Under
public async Task AsyncMethod(int num)
পরিবর্তে
public async void AsyncMethod(int num)
কেবলমাত্র আমি যে দৃশ্যের কথা ভাবতে পারি তা হ'ল যদি আপনার কাজটির অগ্রগতি ট্র্যাক করতে সক্ষম হয়।
অতিরিক্তভাবে, নিম্নলিখিত পদ্ধতিতে, অ্যাসিঙ্ক এবং কীওয়ার্ডগুলি অপ্রয়োজনীয়?
public static async void AsyncMethod2(int num)
{
await Task.Factory.StartNew(() => Thread.Sleep(num));
}
Thread.Sleep
আপনার কাজের সাথে আপনার ব্যবহার করা উচিত নয় কেবল একটি নোটawait Task.Delay(num)
Task.Delay
নয় Task.AsyncDelay
এসিঙ্ক সকল যেমন কাজের উপর পদ্ধতি
async void
পরিবর্তে ঘোষণা করা হয়েছিল async Task
। পদ্ধতিটি ক্র্যাশ হয়ে গেছে কারণ এটি নিয়ন্ত্রকের সদস্য হিসাবে ঘোষিত একটি সত্তা ফ্রেমওয়ার্ক প্রসঙ্গটি অবজেক্টটি ব্যবহার করে পদ্ধতিটি কার্যকর করা শেষ হওয়ার আগেই নিষ্পত্তি করা হয়েছিল। কাঠামোটি কার্যকর করার আগে পদ্ধতিটি শেষ করার আগে নিয়ামককে নিষ্পত্তি করে। আমি পদ্ধতিটি async Task এ পরিবর্তন করেছি এবং এটি কার্যকর হয়েছে।
Foo()
হয়ে উঠবেFooAsync()
।