का निपटान करें I StreamResourceInfo.Stream
का उपयोग संसाधनों से BitmapImage
एस प्राप्त करने के लिए करें। क्या इसका उपयोग करने के बाद Close
और Dispose
स्ट्रीम सही है? मैं पूछता हूं क्योंकि मेमोरी प्रोफाइलर में, अगर ऐसा होता है तो मुझे एक त्रुटि मिलती है। मेमोरी प्रोफाइलर का कहना है कि एक डिस्पोजेड उदाहरण जीसीड नहीं किया गया है।StreamResourceInfo.Stream
यदि मैं वेब पर देखता हूं, तो मुझे केवल इस विषय पर this पोस्ट मिल सकता है। इस पोस्ट में, प्रतिक्रिया देने वाला व्यक्ति कहता है, कि निपटान करना मतलब है। हालांकि अगर मैं परिस्थितियों और प्रभाव पर ध्यान देता हूं, तो मुझे नहीं लगता कि यह सही है। क्या कोई जानता है कि सही कार्रवाई क्या है?
अतिरिक्त जानकारी: मैंने देखा है msdn उदाहरणों में, वे निपटान या बंद नहीं करते हैं।
संपादित
रिक Sladkeys जवाब देने के लिए धन्यवाद, मैं समाधान नहीं मिला: मैं BitmapImage
की StreamSource
-property को StreamResourceInfo.Stream
आवंटित। msdn में लिखा गया है:
बिटमैप कैशऑप्शन पर कैशऑप्शन प्रॉपर्टी सेट करें। अगर आप बिटमैप छवि के निर्माण के बाद स्ट्रीम को बंद करना चाहते हैं तो ऑनलोड करें। डिफ़ॉल्ट ऑनडेमांड कैश विकल्प बिटमैप की आवश्यकता होने तक स्ट्रीम तक पहुंच को बरकरार रखता है, और कचरा कलेक्टर द्वारा क्लीनअप को संभाला जाता है।
इसका मतलब है, BitmapImage
स्ट्रीम का स्वामित्व लेता है। और यही कारण है कि अगर मैं स्ट्रीम को मैन्युअल रूप से बंद/डिस्प्ले करता हूं तो स्मृति प्रोफाइलर एक त्रुटि दिखाता है: बिटमैप स्ट्रीम (बिटमैप कैशऑप्शन ऑन डिमांड) का संदर्भ रखेगा और इसलिए जीसी इसे तब तक रिलीज़ नहीं करेगा जब तक कि बिटमैप छवि वैध नहीं है, लेकिन स्ट्रीम पहले से ही स्पष्ट रूप से है निपटाए। इस विशिष्ट उदाहरण में, निपटान एक बुरा विचारधारा है।
पूर्णता के लिए, मैंने उपर्युक्त लिंक के उदाहरण के लिए msdn में भी देखा है जहां TextRange.Load
कहा गया था। Load
के लिए, यह विपरीत है, Load
स्वामित्व नहीं लेता है और इसलिए स्ट्रीम को समाप्त होने के बाद बंद/डिस्पोजेड किया जाना चाहिए।
धाराओं पर 'निपटान' आंतरिक रूप से 'बंद' कॉल करता है। (या वास्तव में आमतौर पर अन्य तरीकों से) –
@ एल्बिन: हाँ मुझे इसके बारे में पता है। यहां AFAIK बंद कॉल का निपटान करें। लेकिन यह सवाल नहीं है। सवाल यह है कि, यदि यह विशिष्ट स्ट्रीम को बंद/निपटाना भी चाहता है। एमएसडीएन-उदाहरणों में वे नहीं करते हैं और यदि मैं परिणाम देखता हूं, तो मुझे संदेह है कि यह previed/अपेक्षित है। लेकिन फिर भी धन्यवाद। – HCL