मैं एक एसिंक्रोनस ऑपरेशन (नेटवर्क आईओएस की एक श्रृंखला) पर एक टाइमआउट लागू कर रहा हूं, और मुझे यकीन नहीं है कि 'बेहतर' (आवंटन/प्रदर्शन से) परिप्रेक्ष्य: एक बनाना EventWaitHandle और RegisterWaitForSingleObject का उपयोग करके, या बस एक टाइमर बनाना और इसकी टिक का उपयोग करना।नेट टाइमआउट्स: WaitForSingleObject बनाम टाइमर
मेरे विशिष्ट मामले में EventWaitHandle आलसी-निर्मित है, लेकिन स्पष्ट रूप से इसे WaitForSingleObject का उपयोग करने के लिए तत्काल होना होगा। तो वास्तव में यह एक WaitHandle + WaitForSingleObject बनाम टाइमर की संसाधन लागत के बारे में एक सवाल है। दोनों दृष्टिकोण लागू करने के लिए आसान हैं।
मैंने कई बार लागू किया है, इसलिए मैं इलाके को समझता हूं, मुझे यकीन नहीं है कि कौन सा दृष्टिकोण 'बेहतर' है।
उनके ब्लॉग आलेख का एक उपयोग की अच्छी तुलना, लेकिन एक बनाम दूसरे के पक्ष में एक बहुत मजबूत सिफारिश नहीं है। और जितना मैंने सोचा, उतना ही मैं कर्नेल संक्रमणों के मामले में कोई अंतर नहीं देख सका। मैं अभी भी जानना चाहता हूं कि अंतर्निहित Win32 API के लिए कोई अंतर अंतर था, लेकिन .net कार्यान्वयन का 'वज़न' मुझे सबसे अच्छा जवाब जैसा लगता है। – piers7