টাস্ক। সব অপেক্ষা করুন অন্যান্য সমস্ত কার্য সম্পাদন সম্পূর্ণ না হওয়া পর্যন্ত বর্তমান থ্রেডটিকে অবরুদ্ধ করে।
টাস্ক। কখন সব পদ্ধতিটি একটি টাস্ক তৈরি করতে ব্যবহৃত হয় যা সম্পূর্ণ হবে যদি এবং শুধুমাত্র যদি অন্য সমস্ত কাজ সম্পূর্ণ হয়। 1ম উদাহরণে, আমরা দেখতে পাচ্ছি যে টাস্ক ব্যবহার করার সময়। অন্যান্য কাজগুলি সম্পূর্ণ হওয়ার আগে যখন সমস্ত টাস্ক সম্পূর্ণ হয়ে যায়। এর মানে হল Task.WhenAll এক্সিকিউশন ব্লক করে না। এবং ২য় উদাহরণে, আমরা দেখতে পাচ্ছি যে Task.WaitAll ব্যবহার করার সময় বাকি সব কাজ শেষ হলেই কাজ সম্পূর্ণ হয়। এর মানে হল টাস্ক.ওয়েটঅল এক্সিকিউশন ব্লক করে।
উদাহরণ
static void Main(string[] args){ Task task1 = new Task(() =>{ for (var i = 0; i < 5; i++){ Console.WriteLine("Task 1 - iteration {0}", i); Task.Delay(1000); } Console.WriteLine("Task 1 complete"); }); Task task2 = new Task(() =>{ for (var i = 0; i < 5; i++){ Console.WriteLine("Task 2 - iteration {0}", i); Task.Delay(1000); } Console.WriteLine("Task 2 complete"); }); task1.Start(); task2.Start(); Console.WriteLine("Waiting for tasks to complete."); Task.WhenAll(task1, task2); Console.WriteLine("Both Tasks Completed."); Console.ReadLine(); }
আউটপুট
Waiting for tasks to complete. Both Tasks Completed. Task 1 - iteration 0 Task 2 - iteration 0 Task 2 - iteration 1 Task 2 - iteration 2 Task 2 - iteration 3 Task 1 - iteration 1 Task 1 - iteration 2 Task 1 - iteration 3 Task 1 - iteration 4 Task 1 complete Task 2 - iteration 4 Task 2 complete
উদাহরণ
static void Main(string[] args){ Task task1 = new Task(() =>{ for (var i = 0; i < 5; i++){ Console.WriteLine("Task 1 - iteration {0}", i); Task.Delay(1000); } Console.WriteLine("Task 1 complete"); }); Task task2 = new Task(() =>{ for (var i = 0; i < 5; i++){ Console.WriteLine("Task 2 - iteration {0}", i); Task.Delay(1000); } Console.WriteLine("Task 2 complete"); }); task1.Start(); task2.Start(); Console.WriteLine("Waiting for tasks to complete."); Task.WaitAll(task1, task2); Console.WriteLine("Both Tasks Completed."); Console.ReadLine(); }
আউটপুট
Waiting for tasks to complete. Task 1 - iteration 0 Task 2 - iteration 0 Task 1 - iteration 1 Task 1 - iteration 2 Task 1 - iteration 3 Task 1 - iteration 4 Task 1 complete Task 2 - iteration 1 Task 2 - iteration 2 Task 2 - iteration 3 Task 2 - iteration 4 Task 2 complete Both Tasks Completed