Mam google podobne problemy, ale nie mógł dokładnie dowiedzieć się, jak zmienić mój kodnieobsługiwany wyjątek typu „System.OutOfMemoryException” wystąpił w System.Drawing.dll Dodatkowe informacje: Out of memory
mam listę "obrazów", która zawiera około 20 zdjęć o wielkości około 1 MB. Chcę przewijać obrazy na liście, klikając następny przycisk. Ale po około 8 zdjęć wyjdę pamięci
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 wątek będzie używać „CurrImage” tak, aby uniknąć warunków wyścigu, unikałem że tworząc nową bitmapę, jak pokazano powyżej
Należy pamiętać, że jeśli użyj pictureBox1.Image = CurrImage; bez tworzenia nowej mapy bitowej Nie otrzymam tego błędu, ale wystąpi wyjątek warunków wyścigu z wątkiem. Dzięki
Dzięki Grant, myślę, że trzeba przeczytać więcej o pamięci nieszczelność. Kiedykolwiek myślę, że stałem się programistą, wtedy uświadamiam sobie, że wciąż jestem daleko. Mimo to dzięki za pomoc. – Basco