कार्य.सभी प्रतीक्षा करें वर्तमान थ्रेड को तब तक ब्लॉक करता है जब तक कि अन्य सभी कार्यों का निष्पादन पूरा नहीं हो जाता।
कार्य.जब सभी विधि का उपयोग किसी कार्य को बनाने के लिए किया जाता है जो पूरा होगा यदि और केवल तभी जब अन्य सभी कार्य पूर्ण हो जाएं। पहले उदाहरण में, हम देख सकते हैं कि कार्य का उपयोग करते समय। जब अन्य कार्यों को पूरा करने से पहले सभी कार्य पूर्ण हो जाते हैं। इसका मतलब है कि कार्य। जब सभी निष्पादन को अवरुद्ध नहीं करते हैं। और दूसरे उदाहरण में, हम देख सकते हैं कि टास्क का उपयोग करते समय। प्रतीक्षा करें सभी कार्य पूर्ण होने के बाद ही अन्य सभी कार्यों को पूरा किया जाता है। इसका मतलब है कि कार्य। प्रतीक्षा करें सभी निष्पादन को अवरुद्ध करते हैं।
उदाहरण
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