प्रतीक्षा करें (), सिंक कोड में संभावित async कोड चलाने का कारण होगा। इंतजार नहीं होगा
उदाहरण के लिए, आपके पास एक asp.net वेब अनुप्रयोग है। UserA कॉल / getUser / 1 समापन बिंदु। asp.net ऐप पूल थ्रेड पूल (थ्रेड 1) से एक थ्रेड उठाएगा और, यह थ्रेड http कॉल करेगा। यदि आप प्रतीक्षा () करते हैं, तो यह धागा तब तक अवरुद्ध रहेगा जब तक http कॉल हल नहीं हो जाती। यदि यह प्रतीक्षा कर रहा है, अगर UserB कॉल / getUser / 2 करता है, तो, ऐप पूल को फिर से http कॉल करने के लिए एक और धागा (Thread2) परोसना होगा। आपने बिना किसी कारण के वास्तव में बनाया (ठीक है, ऐप पूल से प्राप्त किया गया), क्योंकि आप थ्रेड 1 का उपयोग नहीं कर सकते हैं, इसे प्रतीक्षा () द्वारा अवरुद्ध किया गया था।
यदि आप थ्रेड 1 पर प्रतीक्षा का उपयोग करते हैं, तो, SyncContext थ्रेड 1 और http कॉल के बीच सिंक का प्रबंधन करेगा। बस, http कॉल हो जाने के बाद यह सूचित करेगा। इस बीच, अगर उपयोगकर्ता कॉल / गेटअप / 2 करता है, तो, आप HTTP कॉल करने के लिए फिर से थ्रेड 1 का उपयोग करेंगे, क्योंकि यह हिट होने के बाद रिलीज़ किया गया था। फिर एक अन्य अनुरोध इसका उपयोग कर सकता है, और भी अधिक। एक बार http कॉल (user1 या user2) हो जाने के बाद, Thread1 परिणाम प्राप्त कर सकता है और कॉलर (क्लाइंट) को वापस कर सकता है। Thread1 का उपयोग कई कार्यों के लिए किया गया था।
Task10 मिनट का इंतज़ार कर रहे हैं तो आप इसे कैसे पसंद करेंगे? वास्तव मेंTaskआपके धागे पर 10 घंटे का समय लगेगा , इस प्रकार आपको पूरे 10 घंटे तक रोकना होगा।