मैं प्रतीक्षा/नींद प्रतिमान के आधार पर एक नेटवर्क-बाध्य आवेदन लिख रहा हूं।प्रतीक्षा करने योग्य थ्रेड कैसे प्राप्त करें। सो जाओ?
कभी-कभी, कनेक्शन त्रुटियां होती हैं, और मेरे अनुभव में यह कुछ समय इंतजार करने और फिर से प्रयास करने की अपेक्षा करता है।
समस्या यह है कि अगर मैं थ्रेड स्लीप या कुछ समान ब्लॉकिंग ऑपरेशन का इंतजार/async में उपयोग करता हूं, तो यह कॉलर थ्रेड में सभी गतिविधियों को अवरुद्ध करता है।
क्या मैं
await Thread.SleepAsync(10000)
के रूप में एक ही प्रभाव acheave के साथ Thread.Sleep (10000) को प्रतिस्थापित करना चाहिए?
अद्यतन
मैं एक जवाब है जो किसी भी अतिरिक्त धागे
मैं अभी भी a4.5 सामान के साथ पकड़ के आ रहा हूँ। उस कथन के बाद कोड पर निष्पादन की शाखा कहां है? क्या गैर-नींद/अवरुद्ध भाग इसे निष्पादित करता है या 'थ्रेड' इंतजार करता है? क्या मुख्य गैर-अवरुद्ध निष्पादन केवल ब्लॉक (उर्फ रिटर्न) को छोड़ देता है? – kenny
हाँ। यह वास्तव में मुझे –
@ केनी की आवश्यकता है: आपको मेरा ['async' परिचय] (http://nitoprograms.blogspot.com/2012/02/async-and-await.html) उपयोगी हो सकता है। जब 'टास्क। डेले' द्वारा लौटाया जाने वाला प्रतीक्षा करने योग्य 'प्रतीक्षा' होता है, क्योंकि यह पूरा नहीं होता है, तो वर्तमान विधि एक अपूर्ण कार्य देता है। बाद में, जब 'देरी' पूरा हो जाता है (टाइमर बंद होता है, धागा नहीं), शेष विधि को चलाने के लिए निर्धारित किया जाता है। निरंतरता एक "संदर्भ" में चलती है जो * * * उसी मूल धागे पर वापस आ सकती है - मेरे ब्लॉग पर विवरण। –