हम ईडब्ल्यूएस प्रबंधित एपीआई का उपयोग कर रहे हैं जो किसी दिए गए अंतराल के बाद नए मेल संदेशों के लिए एमएस एक्सचेंज का चुनाव करता है। मतदान कॉल के प्रत्येक आमंत्रण के साथ (PullSubscription.GetEvents()
) - माइक्रोस्कोफ्ट एपीआई NetworkStream
को सही ढंग से निपटाने में विफल रहा है और स्मृति को आनुपातिक रूप से बढ़ने का कारण बनता है। यह पहले discussed here था, लेकिन कभी हल नहीं हुआ। एएनटीएस प्रोफाइलर का उपयोग करके हम यह निर्धारित करने में सक्षम थे कि कौन सी वस्तुएं स्मृति में लगातार बढ़ रही थीं और इस मुद्दे को अलग कर रही थीं।ऑब्जेक्ट के कचरे के संग्रह को कैसे बल दिया जाए, आप अपमान नहीं कर सकते?
अब यह मुद्दा अलग कर दिया गया है - क्या बाहरी एपीआई में बनाए गए नेटवर्कस्ट्रीम का निपटान करने का कोई तरीका है जिसका हमारे पास कोई संदर्भ नहीं है? जीसी। कोलेक्ट() इसे निपटाने के लिए प्रतीत नहीं होता है क्योंकि इसमें अभी भी एक सक्रिय संदर्भ है। खतरनाक संदर्भ को साफ करने के लिए हम क्या कर सकते हैं? क्या कोई रैपर है जिसका उपयोग हम अपनी छोटी गाड़ी एसडीके की सफाई को मजबूर करने के लिए कर सकते हैं?
मुझे आश्चर्य है - क्या आप प्रतिबिंब के माध्यम से संदर्भ प्राप्त कर सकते हैं? –
क्या आप कृपया पोस्ट कर सकते हैं जहां आपने लाइब्रेरी में अनाथ नेटवर्कस्ट्रीम पाया था? मैंने अभी GetEventsMethod के चारों ओर पोक किया है, लेकिन नेटवर्कस्ट्रीम नहीं मिला। –
@ हेनिंगक्रूज़ I ने डैरेन थॉमस के दृष्टिकोण को भी एक प्रयास दिया, लेकिन प्रतिबिंबित करने के लिए मुझे एक्सचेंज सेवा और सदस्यता बॉक्स श्रेणी के आंतरिक में गहन जांच की आवश्यकता होगी जिसे मैंने छोड़ना चुना था। वर्तमान में मैंने अभी साल्वाटोर के # 1 का पालन किया है और एमएस के साथ टिकट खोला है। हम देखेंगे कि आगे क्या होता है ... – SliverNinja