मुझे पता है कि सबसे अच्छा अभ्यास किसी भी वस्तु है कि IDisposable लागू करता है पर निपटान कॉल करने के लिए है हूँ, विशेष रूप से, वस्तुओं है कि फ़ाइल हैंडल, सॉकेट, GDI हैंडल की तरह परिमित संसाधनों लपेट आदिवास्तव में फ़ॉन्ट का निपटान करना कितना महत्वपूर्ण है?
लेकिन मैं एक मामले में चल रहा हूँ जहां मेरे पास एक ऑब्जेक्ट है जिसमें एक फ़ॉन्ट है, और मुझे ऑब्जेक्ट्स की कई परतों के माध्यम से आईडीस्पोजेबल को प्लंब करना होगा, और यह सुनिश्चित करने के लिए कि मैं हमेशा फ़ॉन्ट का निपटारा करता हूं, बहुत सारे उपयोग की समीक्षा करता हूं। और मैं सोच रहा हूं कि यह जटिलता के लायक है या नहीं।
फ़ॉन्ट एक एचएफओटी लपेटने पर यह एक बात होगी, क्योंकि जीडीआई संसाधन सिस्टम-ग्लोबल हैं। लेकिन फ़ॉन्ट एक जीडीआई हैंडल लपेटता नहीं है; यह जीडीआई + है, जो एक पूरी तरह से अलग प्रणाली है, और जहां तक मैं समझता हूं, प्रक्रिया-स्थानीय है, जीडीआई की तरह सिस्टम-ग्लोबल नहीं है। और छवि के विपरीत, फ़ॉन्ट कभी भी फाइल सिस्टम संसाधनों (जो मुझे पता है, वैसे भी) पर नहीं है।
तो मेरा सवाल यह है कि: फ़ॉन्ट को कचरा इकट्ठा करने की वास्तविक लागत क्या है?
मुझे पता है कि मैं अंतिमकर्ता के लिए एक छोटी सी हिट लेगा, लेकिन अगर "लीक" फ़ॉन्ट्स की संख्या छोटी है (आधा दर्जन कहें), जो ईमानदारी से मारा जाता है, वह ध्यान देने योग्य नहीं होगा। फाइनेंजर के अलावा, यह मध्य आकार के सरणी को आवंटित करने और जीसी को साफ करने से बहुत अलग नहीं लगता है - यह सिर्फ स्मृति है।
क्या कोई लागत है जो मुझे फ़ॉन्ट को जीसीड प्राप्त करने में अवगत नहीं है?
"अक्सर, अप्रबंधित हैंडल स्मृति से अधिक प्रतिबंधित होते हैं" - निश्चित रूप से। लेकिन क्या यह सच है कि जीडीआई + फ़ॉन्ट विशेष रूप से हैंडल करता है? यह मेरे प्रश्न का हिस्सा है। –