An unhandled exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll Additional information: Out of memory
16,901
You could try calling the following before assigning a new Bitmap to pictureBox1.Image
, to remove the previous "new" Bitmap and free up resources:
pictureBox1.Image.Dispose();
Author by
Admin
Updated on June 17, 2022Comments
-
Admin about 2 years
I have a list "images" that contains about 20 photos about 1MB each. I want to scroll through the images in the list by clicking the next button. But after about 8 pictures I get out of memory.
private void button4_Click(object sender, EventArgs e) //next { index++; if (index >= images.Count) index = 0; CurrImage = images[index]; Bitmap b = new Bitmap((Bitmap)CurrImage.Clone()); //breakpoint occurs her pictureBox1.Image = b; NewThread = new Thread(new ThreadStart(ChooseColors2)); }
ChooseColors2 thread will use "CurrImage" so to avoid race conditions, I avoided that by creating a new bitmap as shown above
Please note that if I use pictureBox1.Image = CurrImage; without creating a new bit map I don't get this error but there will be race condition exception with the thread.