2009-02-12 13 views
29

हमारे पास एक .NET एप्लिकेशन है जो विभिन्न वेब सेवाओं के लिए कई समवर्ती कॉल करता है, उनके जवाब एकत्र करता है और फिर उन प्रतिक्रियाओं से कुछ गणना करता है। अतिरिक्त प्रदर्शन प्राप्त करने के प्रयास में, मैं आईओ पूरा करने वाले बंदरगाहों के उपयोग के माध्यम से .NET के आईओ थ्रेडिंग का उपयोग करने वाले दृष्टिकोणों के उपयोग की जांच कर रहा हूं। मैंने विंडोज़ पर जो डफी की हाल की पुस्तक समवर्ती प्रोग्रामिंग समेत कई संसाधनों के माध्यम से पढ़ा है और जब मैं उनकी उपयोगिता प्राप्त करता हूं, तो मैं .NET के भीतर उनके व्यवहार के बारे में थोड़ा अस्पष्ट हूं और एक संक्षिप्त स्पष्टीकरण की तलाश में हूं।.NET आईओ थ्रेड या आईओ प्राप्ति बंदरगाहों का उपयोग कैसे करता है?

+1

ब्याज की हो सकती है: http://marcgravell.blogspot.com/2009/02/async-without-pain.html –

उत्तर

25

संभावना है कि अगर आप पहले से ही एसिंक्रोनस विधियों का उपयोग कर रहे हैं तो आपको कुछ भी करने की ज़रूरत नहीं है। वेब सेवा पर कॉल के लिए उपयोग की जाने वाली तकनीक के आधार पर, आखिरकार, यह नेटवर्क से बाइट प्राप्त करने के लिए कॉल करने के लिए Win32 API पर जा रहा है, और अंत में, यह I/O प्राप्ति का उपयोग करेगा एसिंक्रोनस कॉल को संभालने के लिए बंदरगाहों।

आई/ओ पूरा करने वाले बंदरगाहों के पीछे मूल आधार यह है कि I/O परिचालनों पर प्रतीक्षा करते समय, एक थ्रेड पूल होता है जो I/O संचालन पूर्ण होने पर प्रतीक्षा करता है (माना जाता है कि आप I/O पूरा करने के लिए पंजीकृत हैं पोर्ट)। जब आपका पंजीकृत ऑपरेशन पूरा हो जाता है, तो I/O पूर्णता पोर्ट थ्रेड पूल से थ्रेड कॉलबैक को संभालने के लिए उपयोग किया जाता है।

बेशक, I/O समापन बंदरगाह पर कॉल करने के बाद, आपका धागा अधिक काम करने के लिए आगे बढ़ सकता है, या समाप्त हो सकता है, पसंद आपके ऊपर है।

निम्नलिखित वर्णन मदद करनी चाहिए इसे और अधिक:

आई/ओ समापन बंदरगाहों:

http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx

अंदर आई/ओ समापन बंदरगाहों (WayBack मशीन):

https://web.archive.org/web/20101101112358/http://doc.sch130.nsc.ru/www.sysinternals.com/ntw2k/info/comport.shtml

+0

बिट के बारे में एक साझा पूल काम कर रहा है जबकि आईओ भूमि में आईओ बंद है, वही था जो मैं उम्मीद कर रहा था। स्पष्टीकरण के लिए धन्यवाद। –

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