2010-07-03 16 views
6

ठीक है, के रूप में मैं इसे समझ, .NET ThreadPool पृष्ठभूमि के एक नंबर किसी तरह के कार्यों के लिए इस्तेमाल किया जा करने के लिए तैयार धागे बनाए रखता है।नेट ThreadPool कार्यकर्ता धागे और अतुल्यकालिक आईओ धागे

प्राप्त करें/SetMinThreads और जाओ/SetMaxThreads तरीकों दो पैरामीटर कि या वापस किया जा सकता समायोजित होते हैं।

MSDN के अनुसार दो पैरामीटर कार्यकर्ता धागे की संख्या और async आईओ के संचालन के लिए इस्तेमाल किया धागे की संख्या का संकेत।

किस प्रकार के ऑपरेशन इन विशिष्ट प्रकार के धागे का उपयोग करते हैं?

कार्यकर्ता धागे:

  1. QueueUserWorkItem मुझे लगता है।
  2. और कुछ और?

Async आईओ धागे:

  1. प्रयुक्त जब उदाहरण के लिए फ़ाइल धाराओं पर Beginxxx, Endxxx बुला? (या नेटवर्क, सीरियल पोर्ट, आदि)
  2. और कुछ और?

किसी भी स्पष्टीकरण के लिए धन्यवाद, या विषय पर एक अच्छा लिंक।

उत्तर

6

हाँ, QUWI लेकिन यह भी एक प्रतिनिधि प्रकार के BeginInvoke() विधि। और कुछ वर्गों द्वारा नियोजित, पृष्ठभूमिवर्कर सबसे प्रसिद्ध उदाहरण है। जो हुड के तहत केवल प्रतिनिधि के BeginInvoke() का उपयोग करता है।

I/O पूर्णता धागे कोड जल्दी से चलाने के लिए एक आई/ओ अनुरोध के पूरे होने जब पाने के लिए एक बहुत ही निम्न स्तर के विंडोज विशेषता है। ReadFileEx() फ़ंक्शन के अंतिम तर्क से सबसे अधिक दिखाई देने वाले, अन्य भी हैं। प्रबंधित समकक्ष ThreadPool.BindHandle() के माध्यम से उजागर किया जाता है।

यह सही पाने के लिए .NET कक्षाओं का काम है। बस कुछ इसका उपयोग करें: फ़ाइलस्ट्रीम, पाइपस्ट्रीम, फाइलसिस्टम वाटर, सॉकेट, सीरियलपोर्ट का आंतरिक कार्यकर्ता धागा और कुछ डब्ल्यूसीएफ चैनल समर्थन वर्ग।

मैं व्यक्तिगत रूप से इन config एपीआई, विशेष रूप से I/O पूर्णता धागा लोगों में उजागर विवरण प्राप्त करने का एक बड़ा प्रशंसक नहीं हूँ। यह बीसीएल टीम द्वारा कुछ पुलिसकर्मी है, कुछ अंत में एफयूडी है। ये सेटिंग्स पूरे कार्यक्रम को प्रभावित करती हैं, डिफ़ॉल्ट पहले से ही उदार हैं। उनके साथ टंकण लगभग जीसी कॉल करने के बराबर है। कोलेक्ट()। यदि आप कभी भी उन्हें बदलने के लिए एक अच्छा कारण ढूंढने का प्रबंधन करते हैं, तो बेहतर होगा जब विमान को वापस घर पकड़ने के लिए केवल एक घंटे के साथ नरक में फंस जाए। वहां गया :)

+0

महोदय, मैं थोड़ा उलझन में हूं। यदि हम QUWI के बजाय प्रतिनिधियों BeginInvoke और EndInvoke का उपयोग करते हैं, तो नया थ्रेड एसिंक्रोनस ऑपरेशन करने के लिए बनाया गया है -> "क्या यह नया धागा थ्रेडपूल से लिया गया है ??"। और यह थ्रेडपूल के वर्कर थ्रेड या Async IO थ्रेड होगा। – Dinesh

+2

हां, थ्रेडपूल थ्रेड, QUWI के समान। एक कार्यकर्ता धागा, I/O धागे का उपयोग केवल I/O समापन दिनचर्या (BindHandle() विधि) द्वारा किया जाता है। –

+0

धन्यवाद सर :) – Dinesh

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