हम एक डायग्नोस्टिक टूल लिख रहे हैं जिसे एक समय में कई घंटों तक चलने की ज़रूरत है, लेकिन जब हम एप्लिकेशन चलाए जाने के बाद चेक किए गए लिस्टबॉक्स से आइटम्स को निकालने का प्रयास करते हैं तो हम एक रहस्यमय आउट ऑफ़ मेमोरी अपवाद में भाग ले रहे हैं दो घंटों के लिए।चेकड लिस्टबॉक्स मेमोरी लीक
हम शुरू में checkedListBox.Items.Clear();
उपयोग करने की कोशिश, और कुछ चारों ओर Googling के बाद, हम बजाय निम्नलिखित की तरह कुछ करने की कोशिश की:
for (int i = checkedListBox.Items.Count - 1; i >= 0; i--)
{
checkedListBox.Items.RemoveAt(i);
}
दुर्भाग्य से, ऊपर इस मुद्दे को हल नहीं किया। मैंने एमएसडीएन मंचों पर यह विचार पाया, लेकिन मैं आज सुबह फिर से लिंक ढूंढने के लिए नहीं कर सकता। हालांकि, उस मंच ने कहा था कि किसी ने अपना आवेदन प्रोफाइल किया था और CheckedListBox.Items.Clear()
में मेमोरी लीक पाया था।
क्या किसी को भी एक कार्यात्मक काम के बारे में पता है?
संपादित करें: FingerTheCat के जवाब अस्थायी रूप से हमारे समस्या हल नहीं है, इसलिए मैं अब के लिए उत्तर के रूप में प्रतीक होगा। हालांकि, हमने वास्तविक समस्या को खोजने और खोजने के लिए कोड के माध्यम से मिलना शुरू कर दिया है। दुर्भाग्यवश, वर्तमान कार्यान्वयन काफी हद तक स्पेगेटी कोड है, इसलिए कुछ भी ढूंढने से कुछ दिन पहले हो सकता है।
चेक किए गए सूची बॉक्स में आप किस प्रकार के आइटम जोड़ रहे हैं? आपको सूची बॉक्स से उन्हें हटाने के अलावा इन ऑब्जेक्ट्स के कुछ स्पष्ट सफाई करने की आवश्यकता हो सकती है (जैसे उन्हें 'डिस्प्ले()' पर कॉल करना आदि)। – MusiGenesis
आप लूप के साथ मेमोरी रिसाव को हल करने में सक्षम हैं? – Damith
आप सुरक्षित रूप से यह मान सकते हैं कि चेकडलिस्टबॉक्स * मेमोरी रिसाव नहीं करता है। .NET प्रदर्शन काउंटर का निरीक्षण करने के लिए Perfmon.exe का उपयोग करें और जांचें कि नियमित कचरा संग्रह हो रहा है। यदि नहीं तो आपको अपने ऐप में गायब निपटान() कॉल के लिए शिकार करने की आवश्यकता होगी। –