2008-09-29 8 views
6

MSDN कहा गया है कि विधि रिटर्नजब ThreadPool.QueueUserWorkItem रिटर्न झूठी

अगर सही विधि सफलतापूर्वक है पंक्तिबद्ध; NotSupportedException फेंक दिया गया है यदि कार्य आइटम कतारबद्ध नहीं है।

परीक्षण उद्देश्यों के लिए false वापस करने के तरीके को कैसे प्राप्त करें? या यह सिर्फ एक "उपमहाद्वीप" वर्ग डिजाइन है?

+1

+1: मैं "से इनकी" विशेषण :) –

उत्तर

5

परावर्तक में स्रोत कोड देख में, ऐसा लगता है कि कोड लौट सकते हैं "गलत" का ही हिस्सा निम्नलिखित के लिए एक कॉल है:

[MethodImpl(MethodImplOptions.InternalCall)] 
private static extern bool AdjustThreadsInPool(uint QueueLength); 
1

यह शायद "भविष्य के उपयोग के लिए आरक्षित" का मामला है। आप इसे विफलता के रूप में पेश करना चाह सकते हैं, लेकिन परीक्षण करना मुश्किल होगा।

मैं इस विधि को शून्य/उप के रूप में बहुत अधिक मानता हूं।

1

यह कल्पना की जा सकती है कि कार्य समांतर लाइब्रेरी (टीपीएल) आने पर संपूर्ण एपीआई (थ्रेड-पूल) अप्रचलित हो जाता है।

1

अगर सही विधि सफलतापूर्वक कतारबद्ध है ; अगर काम मद पंक्ति में नहीं है NotSupportedException फेंक दिया है।

उसी तरह है कि आप एक NotSupportedException इलाज में एक return false उपचार करें।

यह गलत वापस जाने के लिए प्राप्त करने के लिए, एक नकली विधि या वस्तु का उपयोग करें।
आप अपनी खुद की कोड है कि आप ने लिखा है, नहीं अंतर्निहित खिड़कियों कोड का परीक्षण करना चाहते हैं। मुझे यकीन है कि माइक्रोसॉफ्ट के लिए पहले से ही अपने स्वयं के परीक्षण के बहुत सारे है हूँ।

+2

अपवाद वास्तव में 'आविष्कार' हुआ अभ्यास को रोकने के लिए "वापसी मान उपेक्षा" प्यार करता हूँ। –