मेरे पास एक भारी आबादी वाली सरणीसूची है, जिसे मैं साफ़ करना और पुन: उपयोग करना चाहता हूं। अगर मैं इसे साफ़ करता हूं तो क्या यह पहले इस्तेमाल की गई स्मृति को मुक्त कर देगा?.net ArrayList करता है। साफ़ मेमोरी साफ़ करें?
मुझे यह भी जिक्र करना चाहिए कि सरणीसूची एक कक्षा का एक निजी पठन क्षेत्र है जो अभी भी पहली बार सरणीसूची का उपयोग करने के बाद बहुत सक्रिय कार्य करता है। इसलिए कक्षा के दायरे से बाहर होने के बाद मैं कचरा संग्रह की प्रतीक्षा नहीं कर सकता।
क्या साफ़ विधि पर्याप्त तेज़ है? या मैं एक नई सरणी सूची को नष्ट और बनाना चाहिए?
प्रश्न अद्यतन:
तो मेरे पास है क्षेत्र इस तरह की घोषणा (जॉन की सलाह के लिए धन्यवाद)
/// <summary>
/// Collection of tasks.
/// </summary>
private List<Task> tasks = new List<Task>();
तो मैं पॉप्युलेट .... (भारी)
अब के बजाय अगर यह साफ करने और काट-छाँट, मैं सिर्फ कॉल कर सकते हैं:
tasks = new List<Task>();
इस सिफारिश की जा सकते हैं?
जॉन के लिए +1 क्योंकि वह वास्तव में इसे कवर किया गया है। हालांकि, स्पष्ट रूप से साफ़ स्मृति वास्तव में मुक्त नहीं होगा - केवल कचरा कलेक्टर ही करता है। सही ढंग से लिखित आईडीस्पोज़ेबल ऑब्जेक्ट्स निपटान के कार्यान्वयन में भी अप्रबंधित स्मृति मुक्त - यदि लागू हो। शायद मैं सिर्फ पैडेंटिक हूं :) –
अच्छा बिंदु एंड्रस, लेकिन मुझे लगता है कि यह मेम कचरा संग्रह के लिए तैयार है। –