मैं ऑब्जेक्ट्स पर कचरा संग्रहण प्रक्रिया के बारे में उलझन में हूं।ऑब्जेक्ट संदर्भों पर कचरा संग्रह कैसे काम करता है?
object A = new object();
object B = A;
B.Dispose();
एक निपटान बुला तक चर बी पर केवल, निर्मित ऑब्जेक्ट कचरा एकत्र नहीं किया जाएगा वस्तु के रूप में अभी भी ए द्वारा संदर्भित है
अब करता है निम्नलिखित कोड काम से ऊपर के रूप में ही?
public static image Test1()
{
Bitmap A = new Bitmap();
return A;
}
अब मैं इस स्थिर कार्य को किसी अन्य विधि से कॉल करता हूं।
public void TestB()
{
Bitmap B = Test1();
B.Dispose();
}
स्थैतिक फ़ंक्शन टेस्ट 1 ने बिटमैप ऑब्जेक्ट का संदर्भ दिया। संदर्भ को अन्य वैरिएबल बी में सहेजा गया है बी पर निपटान करके, बी और ऑब्जेक्ट के बीच कनेक्शन खो गया है लेकिन टेस्ट 1 से पारित संदर्भ के साथ क्या होता है। क्या यह तब तक सक्रिय रहेगा जब तक कि टेस्टबी का कार्य पूरा नहीं हो जाता?
क्या स्थिर कार्य से तुरंत संदर्भित करने के लिए कोई तरीका है?
कचरा संग्रह संदर्भ गणना नहीं है। –
कचरा संग्रह का पूरा बिंदु यह है कि आपको इस बात की परवाह नहीं है कि स्मृति कब जारी की जा रही है या नहीं। सिद्धांत रूप में, स्मृति के विशाल भंडार वाले सिस्टम पर, कचरा संग्रह _verver_ हो सकता है, बस क्योंकि यह समाप्त होने पर सब कुछ साफ होने के लिए और अधिक कुशल होगा। –