मैं सामान्य तरीके से उपयोग करने के लिए कुछ विधि बनाना चाहता हूं, जब तक किसी दिए गए शर्त को पूरा नहीं किया जाता है तब तक यह ब्लॉक (जब तक कोई निश्चित टाइमआउट समाप्त नहीं हो जाता)।कुछ शर्तों को पूरा करने तक "ब्लॉक" करने का सर्वोत्तम तरीका
कोड में उपयोग करने के लिए कुछ इसी तरह होगा:
WaitUntil(condition);
मैं एक ओर जहां (..) पाश का उपयोग कर इसे लागू करने की कोशिश की है, लेकिन इस बर्बादी की तरह लगता है।
वर्तमान कार्यान्वयन में, मैं एक 'ऑफ-ऑफ' टाइमर शुरू कर रहा हूं जो TIMEOUT पर समाप्त हो जाता है। मैं थोड़ी देर लूप चला रहा हूं, और जांच कर रहा हूं कि टाइमर का समय समाप्त हो गया है या नहीं, अगर ऐसा हुआ तो अपवाद फेंक रहा है।
क्या ऐसी विधि को लागू करने के लिए कोई सरल लेकिन प्रभावी तकनीक है?
मैं प्रतिनिधियों और घटनाओं – Joe
Mutex, सेमाफोर, ManualResetEvent, AutoResetEvent, CountdownEvent आदि System.Threading नाम स्थान –
कह अधिक तकनीकी रूप से आप कुछ पर सिंक्रनाइज़ करना चाहते हैं को देखो इस पर गौर करेंगे। ऑपरेटिंग सिस्टम तंत्र प्रदान करता है जो लूप के दौरान व्यस्त प्रतीक्षा से बचने की अनुमति देता है। Yoy में विकल्पों की संख्या है: सेमफोर, महत्वपूर्ण अनुभाग, मैनुअल/ऑटो रीसेट घटना और अधिक। एक को चुनने के लिए आपको कहना चाहिए कि वह कंडीशनिंग है जिसके लिए आप प्रतीक्षा कर रहे हैं। सिंक्रनाइज़ेशन के लिए एक सामान्य फ़ंक्शन WaitForSingleObject है। – pkmiec