मुझे पता है कि IDisposable
को लागू करने वाली सभी ऑब्जेक्ट्स को जल्द ही उनके अप्रबंधित संसाधनों द्वारा उपयोग की जाने वाली मेमोरी को मुक्त करने के लिए आवश्यक नहीं होना चाहिए।क्या मुझे उन वस्तुओं पर निपटान करने के लिए परेशान करना चाहिए जो प्रक्रिया के जीवनकाल को साझा करते हैं?
मेरा प्रश्न उन वस्तुओं से संबंधित है जो मुझे एक तथ्य के लिए तब तक लाइव रहेंगे जब तक होस्ट प्रक्रिया स्वयं समाप्त नहीं हो जाती। अगर मैं उनका निपटान करता हूं या नहीं तो क्या इससे कोई फर्क पड़ता है? क्या प्रक्रिया मरने पर स्मृति को मुक्त नहीं किया जा सकता है? जीडीआई वस्तुओं के बारे में क्या? क्या प्रक्रिया समाप्त होने पर भी जीडीआई संभालती है, भले ही उन्हें निपटाया न जाए?
मैं पूरी तरह से समझता हूं कि वैसे भी सभी वस्तुओं का निपटान करना अच्छा अभ्यास है। मैं जिज्ञासा से पूरी तरह से पूछता हूं।
http://blogs.msdn.com/b/kimhamil/archive/2008/11/05/when-to-call-dispose.aspx वाह, लोग 3 पैर बिल्ली पर कुत्तों के एक पैक की तरह मुझ पर कूद गए निपटाने के लिए कहने के लिए। मैंने पाया है कि इससे मदद मिलती है इससे ज्यादा दर्द होता है। क्या जीवन चक्र को कंटेनर द्वारा प्रबंधित नहीं किया जाना चाहिए, हार्ड कोड नहीं ??? – CrazyDart
@CrazyDart धन्यवाद, यह एक पुनरावृत्ति पढ़ा जाता है, हालांकि यह मुख्य रूप से प्रश्न के साथ सौदा करता है "क्या टाइप एक्स का ऑब्जेक्ट सामान्य रूप से निपटाया जाना चाहिए"। जितना अधिक विशिष्ट सवाल मैं जवाब देने का प्रयास कर रहा हूं, "टाइप एक्स का ऑब्जेक्ट होना चाहिए, जो ** निश्चित रूप से ** सामान्य रूप से निपटाया जाना चाहिए, भले ही इसे प्रक्रिया के जीवनकाल को साझा किया जाए?" – Rotem
@CrazyDart जब आपको निपटान किया गया है तो आपको चोट पहुंची है? आपके द्वारा दिया गया लिंक कुछ उदाहरण देता है जब निपटान नहीं किया जाना चाहिए, लेकिन सामान्य नियम अभी भी इसे तब तक कॉल करना चाहिए जब तक कि आपके पास कोई अच्छा कारण न हो। – hvd