Nejčastěji odpovídající uživatel
OutOfMemory při ukládání Bitmapy v cyklu

Dotaz
-
Ahoj, mám problém s výjimkou OutOfMemory při práci s bitmapou. Vytvářím a ukládám obrázek 1280x1024. Pokud vytvořím jeden, nic se neděje, ale když jich v cyklu generuji třeba patnáct, tak to kolem desátého obrázku spadne na nedostatku paměti. Samozřejmě po každém uložení volám nad objektem bitmapy Dispose(). Je vůbec možné generovat takhle velké obrázky aniž bych na paměti vždy vyhořel?
Tom
Odpovědi
-
Ahoj, pokud už je to vyřešený, je to OK, zkoušel jsem popisovaný chování na kódu dole a pokud jsem nezapomněl na Dispose, vše se uvolňovalo správně. Není možné, že by během práce zůstal v paměti jiný objekt odkazující na Bitmapu ?
int i = int.Parse(textBox1.Text); for (int a = 0; a < i; a++) { Bitmap b = new Bitmap(1280, 1024); Graphics g = Graphics.FromImage(b); g.DrawLine(Pens.Blue, 0, 0, g.ClipBounds.Width, g.ClipBounds.Height); g.Flush(); //g.Dispose(); //b.Dispose(); } label1.Text = "Working set: " + Environment.WorkingSet;
M- Označen jako odpověď KFL-MSMicrosoft employee čtvrtek 28. dubna 2011 14:08
Všechny reakce
-
-
-
Ahoj, pokud už je to vyřešený, je to OK, zkoušel jsem popisovaný chování na kódu dole a pokud jsem nezapomněl na Dispose, vše se uvolňovalo správně. Není možné, že by během práce zůstal v paměti jiný objekt odkazující na Bitmapu ?
int i = int.Parse(textBox1.Text); for (int a = 0; a < i; a++) { Bitmap b = new Bitmap(1280, 1024); Graphics g = Graphics.FromImage(b); g.DrawLine(Pens.Blue, 0, 0, g.ClipBounds.Width, g.ClipBounds.Height); g.Flush(); //g.Dispose(); //b.Dispose(); } label1.Text = "Working set: " + Environment.WorkingSet;
M- Označen jako odpověď KFL-MSMicrosoft employee čtvrtek 28. dubna 2011 14:08
-