मेरे पास एक विंडोज़फॉर्म ऐप है जो स्मृति को रिसाव करने के लिए प्रतीत होता है, इसलिए मैंने उन वस्तुओं को देखने के लिए रेडगेट के एएनटीएस मेमोरी प्रोफाइलर का उपयोग किया और मुझे लगता है कि वे केवल फ़ाइनलाइज़र कतार पर ऑब्जेक्ट्स द्वारा ही आयोजित किए जाते हैं। बढ़िया, बिल्कुल फाइनेंजर कतार क्या है? क्या आप मुझे सबसे अच्छी परिभाषा के लिए इंगित कर सकते हैं? क्या आप किसी भी अनावश्यक सलाह साझा कर सकते हैं?फ़ाइनेंजर कतार और नियंत्रण + थ्रेड MethodEntry क्या हैं?
इसके अलावा, सभी finalizer कतार पर रूट जीसी वस्तुओं System.Windows.Forms.Control + ThreadMethodEntry वस्तुओं "फोन करने वाले" नाम के उदाहरण हैं। मैं देखता हूं कि यह मल्टी-थ्रेड यूआई इंटरैक्शन में शामिल है, लेकिन मुझे उससे परे बहुत कुछ पता नहीं है। मेरी स्पष्ट आलस्य को क्षमा करें और अज्ञानता स्वीकार की, लेकिन इन संसाधनों को सभी को विक्रेता के घटक के भीतर दफनाया जाता है। मैं इन मुद्दों के बारे में विक्रेता से बात कर रहा हूं, लेकिन मुझे वार्तालाप पर तेजी लाने के लिए मुझे कुछ दिशा चाहिए। क्या आप मुझे ThreadMethodEntry की सबसे उपयोगी परिभाषा पर भी इंगित कर सकते हैं? कोई अजीब सलाह?
साथ ही, क्या मुझे अंतिम वस्तु कतार पर इन वस्तुओं के बारे में भी चिंतित होना चाहिए?
अद्यतन: यह Red Gate article सहायक था।
महान जवाब के लिए धन्यवाद, पॉल। संसाधनों को साफ करने के बाद, ऑब्जेक्ट संदर्भ ग्राफ मैं दूसरे स्नैपशॉट में नई ऑब्जेक्ट्स को देखकर बात कर रहा हूं। IDISposable को लागू करने वाले ग्राफ़ में मौजूद सभी ऑब्जेक्ट्स में एक टूल टिप है जो कहती है "इस ऑब्जेक्ट के लिए डिस्प्ले() को कॉल किया गया है" लेकिन चयनित ऑब्जेक्ट में ऐसी कोई टूलटिप नहीं है। – flipdoubt
ThreadMethodEntry के बारे में नोट: मुझे लगता है कि वे यूआई थ्रेड में किसी भी आमंत्रण में उपयोग किए जाते हैं। प्रत्येक कंट्रोल ऑब्जेक्ट में ThreadMethodEntry प्रकार के थ्रेड कॉलबैक की एक पंक्ति है। एक कॉलबैक थ्रेड MethodEntry को हटा देता है और इसे चलाता है। प्रत्येक थ्रेड MethodEntry ऑब्जेक्ट में आंतरिक फ़ील्ड का एक गुच्छा है। इन क्षेत्रों की जांच करने से आप यह पता लगाने में मदद कर सकते हैं कि इनमें से कौन सा विक्रेता ऑब्जेक्ट्स आ रहा है। मुझे याद नहीं है कि क्या आप एएनटीएस से यह जानकारी प्राप्त कर सकते हैं, लेकिन मुझे पता है कि आप WinDbg.dll और sos.dll (प्रबंधित डीबगर एक्सटेंशन) के माध्यम से कर सकते हैं। "विधि" प्रतिनिधि और "कॉलर" नियंत्रण देखें। –
इसके अलावा, ध्यान दें कि ThreadMethodEntry ऑब्जेक्ट्स फ़ाइनलज़र को कार्यान्वित करते हैं, लेकिन उनके पास डिस्पोजेक्ट विधि नहीं है। जब वे पूरा हो जाएंगे, तो वे फाइनलजर कतार में भी चले जाएंगे। –