2010-03-15 17 views
5

एसिंक्रोनस सॉकेट के साथ, मेरे पढ़ने और परीक्षण के आधार पर, सॉकेट को राज्य ऑब्जेक्ट (IAsyncResult परिणाम) का उपयोग करके पारित किया जा सकता है, अगर सॉकेट को एक निजी क्षेत्र के रूप में संग्रहीत किया जाता है, तो यह कॉलबैक विधियों द्वारा कब्जा कर लिया जाएगा ।सी # असिंक्रोनस सॉकेट प्रश्न

मुझे आश्चर्य है कि IXXNResult को BeginXXX और ReceiveXXX के बीच कैसे रखा जाता है? मुझे लगता है कि BeginXXX कॉल और विधि समाप्त होने के बाद, यदि कोई संदर्भ नहीं है तो राज्य वस्तु जीसी द्वारा निपटाई जाएगी।

निजी क्षेत्र के मामले में, निजी क्षेत्र धागे के बीच कैसे साझा किया जाता है? (जहां तक ​​मुझे पता है, डिफ़ॉल्ट थ्रेड पूल से थ्रेड का उपयोग करके कॉलबैक निष्पादित किया जाता है, जिसे एक नया थ्रेड माना जाएगा।)

बहुत धन्यवाद, उम्मीद है कि प्रश्न स्वयं स्पष्ट हैं।

उत्तर

0

जीसी वस्तुओं का निपटान नहीं कर रहा है, यह किसी भी संदर्भ के साथ वस्तुओं द्वारा उपयोग की जाने वाली स्मृति जारी कर रहा है। क्लाइंट कोड ऑब्जेक्ट्स का निपटान करना चाहिए, जीसी कभी ऐसा नहीं करता है।

IAysnResult अभी भी थ्रेड पूल में निष्पादित एक प्रतिनिधि में एक संदर्भ है, इसलिए इसे जीसी यूनिट द्वारा कॉलबैक विधि समाप्त नहीं किया जाएगा।

निजी सदस्य हमेशा निष्पादन थ्रेड के लिए दृश्यमान होते हैं, इसलिए आपका निजी सॉकेट फ़ील्ड उन सभी थ्रेडों के लिए पहुंच योग्य होगा जो युक्त कक्षा के तरीकों को निष्पादित कर रहे हैं।

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