2010-11-17 9 views
7

WaitForSingleObject (या WaitForMultipleObjects) शून्य के टाइमआउट समय के साथ किसी ईवेंट की प्रतीक्षा करते समय संदर्भ स्विच का कारण बनता है? (Sleep(0) जहां तक ​​मुझे पता है, तुरंत एक थ्रेड टाइम-स्लाइस उत्पन्न करेगा।)इंतजार करेगा ForeSorleObject शून्य के टाइमआउट समय के साथ प्रतीक्षा करते समय एक संदर्भ स्विच का कारण बनता है?

अब WaitForSingle|MultipleObject और ईवेंट हैंडल के बारे में। अगर WaitFor * ऑब्जेक्ट को वास्तव में प्रतीक्षा करने की ज़रूरत है, तो यह निश्चित रूप से इसके शेष समय-टुकड़े को उपज देगा। लेकिन, इसमें दो मामलों में जहां एपीआई प्रतीक्षा करने के लिए नहीं जरूरत करता हैं:

  • या तो घटना का संकेत है, जो मामले में यह WAIT_OBJECT_0
  • या घटना के राज्य कोई फर्क नहीं पड़ता के साथ लौट सकते हैं के रूप में मैं शून्य की प्रतीक्षा समय, जिस स्थिति में इसे तुरंत वापस कर सकते हैं, या तो WAIT_OBJECT_0 या WAIT_TIMEOUT

अब के साथ, यह देखते हुए निर्दिष्ट, WaitForSingleObject एक धागा संदर्भ स्विच कारण होगा यदि शून्य का समय समाप्त समय आपूर्ति की जाती है?

उत्तर

4

विंडोज रिसर्च कर्नेल और KeWaitForSingleObject की कुछ सरल रिवर्स-इंजीनियरिंग के आधार पर, उत्तर नहीं है। डब्लूआरके को देखते हुए, आंतरिक टाइमर के देय समय की जांच KiSwapThread से पहले की जाती है, यह सुनिश्चित कर लें कि ऑब्जेक्ट सिग्नल नहीं होने पर फ़ंक्शन तुरंत लौटाता है।

3

अब ऐसा लगता है मैं एक तरह से एक जवाब मिला, जबकि प्रश्न लिख - यहाँ है मैं उपलब्ध डॉक्स से क्या मान :

MSDN राज्यों निम्नलिखित:

dwMilliseconds [में ]

मिलीसेकंड में टाइम-आउट अंतराल। यदि एक nonzero मान निर्दिष्ट है, तो फ़ंक्शन तक प्रतीक्षा करता है निर्दिष्ट वस्तुओं को संकेत दिया जाता है या अंतराल समाप्त हो जाता है। यदि dwMilliseconds शून्य है, तो फ़ंक्शन निर्दिष्ट ऑब्जेक्ट्स संकेतित नहीं होने पर प्रतीक्षा स्थिति दर्ज नहीं करता है; यह हमेशा तुरंत लौटता है। यदि dwMilliseconds INFINITE है, फ़ंक्शन केवल तभी वापस आएगा जब निर्दिष्ट ऑब्जेक्ट्स सिग्नल किए गए हों।

मैं इस लेने सूचित करते हैं कि यह भी एक प्रतीक्षा राज्य में प्रवेश नहीं करता है अगर वस्तुओं संकेत कर रहे हैं और मैं व्याख्या के रूप में "कोई संदर्भ स्विच होता है" एक प्रतीक्षा राज्य प्रवेश नहीं करता है " "।

संबंधित मुद्दे

 संबंधित मुद्दे