2011-08-09 15 views
5

Estoy desarrollando una aplicación de formulario de Windows. En uno de mis formularios coloco un control de cuadro de imagen. Funciona bien durante la mayoría del tiempo. Pero en algún momento muestra una cruz roja en lugar de mostrar una imagen real.Cuadro de imagen de la memoria

Exploro más a fondo esto y llegué a saber que este control maneja las excepciones internamente. Así que voy a Debug->Exceptions y marque las casillas correspondientes thrown. Entonces me encontré con que el cuadro rojo es debido a la pantalla siguiente error:

A first chance exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll 

Additional information: Out of memory. 

Podría alguno cuerpo, me sugieren cómo hacer frente a esta excepción?

+3

ver esto: http://stackoverflow.com/questions/2449587/out-of-memory-with-multi-images-in-one-picturebox – Waqas

+2

¿Está rehusando el cuadro de imágenes múltiples? Si es así, ¿está eliminando la imagen anterior antes de cargar la siguiente? –

+0

Comprueba que no estés atrapado en un bucle sin fin en alguna parte. Verifique que el tamaño de la imagen no sea como 1 gb o algo así. Verifique que su computadora no sea realmente vieja y que no tenga memoria. –

Respuesta

8

Como par te comente que está utilizando varias imágenes en el PictureBox, debe "como @ Jason sugerido" disponer la antigua imagen antes de aplicar la nueva, como:

private void ChangePictureBoxImage(Image image) 
{ 
    pictureBox.Image.Dispose();//dispose the old image. 

    pictureBox.Image = image; 
} 
0

¿Cuánta RAM tiene su máquina objetivo?

Obtuvo esta excepción porque falló la llamada para asignar más memoria para la imagen. Si no puede aumentar la cantidad de memoria en su computadora, intente reducir el tamaño de la imagen o cierre cualquier otro programa que tenga en ejecución.

+1

¿Alguien realmente cree que hay una remota posibilidad de que sea fuera de RAM/memoria virtual? –

+1

Eso es lo que significa la excepción ... como puede ver en la respuesta aceptada anteriormente, se estaba quedando sin memoria. – lettucemode

Cuestiones relacionadas