नोट: मैं पहले से ही निम्नलिखित दो प्रश्नों पढ़ा है:समझौता स्ट्रीम और उनके जीवनकाल (फ्लश, निपटान, बंद)
Can you explain the concept of streams?
मैं सी #
में कोडिंग कर रहा हूँ- कि धाराओं का उपयोग लगभग सभी कोड नमूने में, .Dispose(), .Flush(), .Close() लगभग हमेशा कहा जाता है।
- एक धारा की अवधारणा में, क्या हासिल होता है?
- मुझे लगता है कि मैं एक चर में संग्रहीत एक धारा निपटान नहीं है, तो अपने आवेदन कहीं लीक कर रहा है?
- क्यों मैं इन कार्यों में से किसी को फोन करने की जरूरत है? मैं कोड नमूने है कि ऐसा नहीं करते हैं और अभी भी काम कर पाने (एक स्पष्ट टूटना बिना)
मैं वर्तमान में अपने आवेदन में एक वर्ग है कि एक प्राथमिक तरीका होता है निर्माण कर रहा हूँ देखा है (की सुविधा देता है यह GetStream()
कहते हैं) के माध्यम से myWebRequest.GetResponse().GetResponseStream()
प्राथमिक विधि GetStream()
एक Stream
उद्देश्य यह है कि किसी भी कार्रवाई का एक धारा (StreamReader, बिटमैप() आदि) की आवश्यकता है के लिए इस्तेमाल किया जा सकता देता है एक धारा देता है।
क्या किसी भी व्यक्ति को मैन्युअल रूप से निपटाने के लिए .GetStream()
पर कॉल करने वाले किसी भी व्यक्ति को मजबूर किए बिना स्ट्रीम को अपने अंतिम उपयोग (कचरा एकत्रित?) के बाद स्वचालित रूप से डिस्पोज़ करने का कोई तरीका है?
आप शायद बता सकते हैं के रूप में, मेरे सवालों का अस्पष्ट और सामान्य हैं। धाराओं की मेरी समझ ठोस नहीं है, इसलिए सहायक लेखों के किसी भी लिंक जो एसओ प्रश्न की तुलना में धाराओं में अधिक गहराई से देखने की पेशकश करते हैं, की सराहना की जाएगी।
आखिरकार होना चाहिए: 'अगर (स्ट्रीम IDISposable है) ((IDISposable) स्ट्रीम)।निपटान(); – Gonzalo
यह एक चरणीय पर 'उपयोग' का उपयोग करने के लिए एक कंपाइलर त्रुटि है जिसे IDisposable के रूप में जाना जाता है। हालांकि यह तकनीकी रूप से होना चाहिए: यदि (स्ट्रीम! = शून्य) धारा। उद्देश्य(); –
कई मामलों में एक स्ट्रीम को स्पष्ट रूप से बंद करना एक अच्छा विचार है, भले ही कोई 'निपटान' भी कहता हो। किसी स्ट्रीम को बंद करने के लिए उन क्रियाओं को करने की आवश्यकता हो सकती है जिन्हें सफल होने की गारंटी नहीं दी जा सकती है; 'बंद' के कार्यान्वयन आम तौर पर ऐसी अपवाद फेंकते हैं जब कुछ समस्याएं होती हैं, जबकि कुछ 'निपटान' कार्यान्वयन ऐसे अपवादों को बाधित कर सकते हैं (ऐसे अपवादों को निगलना बुरा है, लेकिन उन्हें 'निपटान' से प्रचार करने की इजाजत देने से पहले पिछले अपवाद को रोक दिया जाएगा, जो कि बुरा भी है; कार्यान्वयन अलग-अलग होते हैं जिसके लिए बुराई कम माना जाता है)। – supercat