में मेमोरी लीक .NET में मेमोरी लीक प्राप्त करने के सभी संभावित तरीके क्या हैं?.NET
मैं दो के बारे में पता:
- नहीं ठीक से संयुक्त राष्ट्र: पंजीयन Event Handlers/Delegates।
- नहीं विण्डोज़ फॉर्म्स में गतिशील बच्चे नियंत्रण निपटान:
उदाहरण:
// Causes Leaks
Label label = new Label();
this.Controls.Add(label);
this.Controls.Remove(label);
// Correct Code
Label label = new Label();
this.Controls.Add(label);
this.Controls.Remove(label);
label.Dispose();
अद्यतन: विचार सामान्य कठिनाइयों जो भी स्पष्ट हो (जैसे कि के रूप में) नहीं हैं सूचीबद्ध करने के लिए है। आम तौर पर धारणा यह है कि कचरा कलेक्टर की वजह से मेमोरी लीक बड़ी समस्या नहीं है। ऐसा नहीं लगता कि यह सी ++ में होता था।
महान चर्चा दोस्तों, लेकिन मुझे स्पष्ट ... परिभाषा से, अगर वहाँ कोई संदर्भ .NET में एक वस्तु के लिए छोड़ दिया है, यह कुछ समय में कचरा एकत्र हो जाएगा करते हैं। तो यह स्मृति रिसाव प्रेरित करने का एक तरीका नहीं है।
प्रबंधित वातावरण में, यदि आप किसी भी वस्तु के बारे में अवगत नहीं थे (इसलिए मेरे प्रश्न में दो उदाहरण हैं) तो मैं इसे एक स्मृति रिसाव मानता हूं।
तो, ऐसे मेमोरी रिसाव कितने संभावित तरीकों से हो सकते हैं?
जैसा किथ ने कहा, आपका नमूना स्मृति रिसाव का कारण नहीं बनता है। – tobsen