मैं Label
बना रहा हूं और कभी-कभी Im .DrawToBitmap()
का उपयोग कर रहा हूं। मैं क्यों नहीं जानता, लेकिन मैं थोड़ी देर के लिए मेरे कार्यक्रम चलाने (और .DrawToBitmap()
अक्सर बुला) के बाद मैं अपवाद: कि अक्सरDrawToBitmap - System.ArgumentException: पैरामीटर मान्य नहीं है
System.ArgumentException: Parameter is not valid.
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height)
किसी तरह मैं फोन नहीं कर सकते हैं इस समारोह। अगर मैं मौलिक इस कोशिश करेंगे:
while(true)
{
System.Windows.Forms.Label label = new Label();
label.Font = new Font("Arial", 20);
label.Text = "test";
try
{
Bitmap image = new Bitmap(300, 500);
label.DrawToBitmap(image, label.ClientRectangle);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
मैं 5-6 सेकेंड (1000-2000 कॉल) अपवाद के बाद मिला है। समस्या क्या है? इससे कैसे बचें?
संपादित करें: Dispose()
के साथ विचार के लिए धन्यवाद दोस्तों - अगर मैं इसे label
पर उपयोग करता हूं तो सबकुछ सही काम कर रहा है। भले ही मैं बिटमैप पर इसका उपयोग न करें। जवाब में से दोनों महान हैं, मैं सिर्फ उन्हें :(की 1 स्वीकार कर सकते हैं
हाय। पहले मैंने कोशिश की (बिटमैप ...) => कोई बदलाव नहीं। लेकिन जब मैं लेबल का उपयोग कर रहा था। प्रत्येक कॉल के अंत में() का प्रयास करें सब कुछ ठीक था :) धन्यवाद - 30,000 कॉल के साथ इसका परीक्षण किया, मुझे लगता है कि अब ठीक है। लेबल के बिना। मान लीजिए() मुझे 1000-2000 कॉल के बाद अपवाद मिलता है। कभी सोचा नहीं कि मुझे लेबल() लेबल का निपटान करना है। – miri
@miri: @ हंसपैसेंट की तरह: मैंने सोचा होगा कि लेबल का निपटान अपवाद का कारण बनता है। मेरा मानना है कि यह फ़ॉन्ट और बिटमैप है जिसे 'उपयोग' ब्लॉक में लपेटा जाना चाहिए। मुझे नहीं पता कि लेबल को अन्यथा लेबल के तरीके के बिना लेबल का निपटान करने में आप कैसे सक्षम हो सकते हैं। – IAbstract