সুতরাং আমাকে সম্প্রতি জানানো হয়েছিল যে আমি কীভাবে আমার .ContinueWith ব্যবহার করছি সেগুলি ব্যবহার করার উপযুক্ত উপায় ছিল না। ইন্টারনেটে এখনও এর প্রমাণ খুঁজে পাইনি তাই আমি আপনাকে ছেলেদের জিজ্ঞাসা করব এবং উত্তরটি কী তা দেখব। আমি কীভাবে ব্যবহার করি তার একটি উদাহরণ এখানে।
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
এখন আমি জানি এটি একটি সাধারণ উদাহরণ এবং এটি খুব দ্রুত চলবে, তবে কেবল প্রতিটি কাজটি আরও দীর্ঘতর কাজ করবে বলে ধরে নিন। সুতরাং, আমাকে যা বলা হয়েছিল তা হল .ContinueWith, আপনাকে prevTask.Wait () বলতে হবে; অন্যথায় আপনি পূর্ববর্তী কাজ শেষ হওয়ার আগে কাজ করতে পারতেন। এটা কি সম্ভব? আমি ধরে নিয়েছিলাম যে আমার দ্বিতীয় এবং তৃতীয় কার্যটি কেবলমাত্র তাদের পূর্ববর্তী টাস্ক শেষ হওয়ার পরে চলবে।
কোডটি কীভাবে লিখতে হবে তা আমাকে বলা হয়েছিল:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 3");
});
}