के साथ मेमोरी लीक मैं बहुत सारे कस्टम नियंत्रण बना रहा हूं और उन्हें फ़्लोलाउटआउट पैनल में जोड़ रहा हूं। डिज़ाइन समय पर बनाए गए और पॉप्युलेट किए गए कॉन्टेक्स्टमेनूस्ट्रिप भी हैं।ContextMenuStrip
हर बार जब पैनल में नियंत्रण जोड़ा जाता है, तो इसकी मेन्यूस्ट्रिप संपत्ति इस मेनू में असाइन की जाती है, ताकि सभी एक ही मेनू को "साझा" कर सकें। लेकिन मैंने देखा कि जब पैनल से नियंत्रण हटा दिए जाते हैं और इसका निपटारा किया जाता है, तो टास्क मैनेजर में उपयोग की जाने वाली स्मृति ड्रॉप नहीं होती है। जब भी नियंत्रण बनाया जाता है और लेआउट पैनल में जोड़ा जाता है तो यह लगभग 50kB तक बढ़ता है।
मैंने .NET मेमोरी प्रोफाइलर का परीक्षण डाउनलोड किया और यह दिखाया गया कि नियंत्रण के निपटारे के बाद चारों ओर लटकने वाली मेन्यू स्ट्रिप के संदर्भ थे। मैंने नियंत्रण को निपटाने से पहले ContextMenuStrip प्रॉपर्टी को स्पष्ट रूप से सेट करने के लिए कोड को बदल दिया है, और हाँ, अब स्मृति जारी की गई है। ऐसा क्यों है? जीसी इस तरह की चीज को साफ नहीं करना चाहिए?
http://connect.microsoft.com/VisualStudio/feedback/details/116059/contextmenustrip-memory-leak – CharithJ