2009-08-30 13 views
5

मुझे लंबे समय तक चलने वाले एप्लिकेशन के साथ कुछ मेमोरी समस्याएं हैं; मैं यह सुनिश्चित करने के लिए पेंट विधियों का निरीक्षण कर रहा हूं कि ब्रश ठीक तरह से निपटाए गए हैं। उस मामले में जहां Brush फ़ंक्शन के तर्क में बनाया गया है, क्या कॉल के बाद ब्रश का निपटान किया जाएगा?ब्रश का निपटान

मामले नीचे उल्लिखित है:

 g.DrawString(valueText, Font, new SolidBrush(Color.Red), 

उत्तर

9

मैं पूरी तरह निश्चित नहीं हूँ, लेकिन मैं नहीं मानता कि यह है। यह सुरक्षित होगा:

using(var redBrush = new SolidBrush(Color.Red) 
{ 
    g.DrawString(valueText, Font, redBrush); 
} 
+3

आप निश्चित हो सकते हैं। –

+0

Brushes.Red का उपयोग करने के बारे में क्या? उनको तुरंत चालू करने की आवश्यकता नहीं है। और आपको उनका निपटान नहीं करना चाहिए, इसलिए कोई भी 'उपयोग (....)' या तो – toong

+0

चूंकि यह संकलित करता है इसका मतलब है कि ब्रश डिस्पोजेबल है और इस प्रकार इसका निपटान किया जाना चाहिए। –

4

नहीं, आपको इसे मैन्युअल रूप से करना चाहिए। हालांकि तैयार किए गए ब्रश के लिए Brushes और SystemBrushes कक्षाओं की जांच करें, जिनका उपयोग आप नए बनाने के बिना कर सकते हैं (और आपको निपटान करने की आवश्यकता नहीं है)।

+0

आप स्टॉक ब्रश का निपटान नहीं कर सकते हैं। यदि आप कोशिश करते हैं तो यह फेंक देगा। –

+2

ठीक है, आपको नहीं करना चाहिए।() स्टॉक ब्रश ... – toong

संबंधित मुद्दे