কম্পিউটার

কিভাবে একাধিক অ্যাসিঙ্ক টাস্ক চালাবেন এবং সেগুলি সি# এ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবেন?


টাস্ক। সব অপেক্ষা করুন অন্যান্য সমস্ত কার্য সম্পাদন সম্পূর্ণ না হওয়া পর্যন্ত বর্তমান থ্রেডটিকে অবরুদ্ধ করে।

টাস্ক। কখন সব পদ্ধতিটি একটি টাস্ক তৈরি করতে ব্যবহৃত হয় যা সম্পূর্ণ হবে যদি এবং শুধুমাত্র যদি অন্য সমস্ত কাজ সম্পূর্ণ হয়। 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

  1. কিভাবে-করবেন:Windows 10-এ লুকানো ফাইল সম্পর্কে এবং সেগুলিকে কীভাবে আনহাইড করা যায়

  2. কিভাবে অ্যান্ড্রয়েডে একাধিক ফেসবুক অ্যাকাউন্ট ইনস্টল এবং চালাবেন

  3. কীভাবে জিমেইলে টাস্ক তৈরি এবং কাজ করবেন

  4. কিভাবে উইন্ডোজে কাজগুলি স্বয়ংক্রিয়ভাবে করা যায়