O bien su aplicación ha agotado la memoria disponible o tiene un problema con la fragmentación del montón.
En el primer caso, ha creado suficientes objetos para ocupar toda la memoria y todavía tiene referencias para que el recolector de basura no pueda limpiarlos.
En el segundo caso, la fragmentación del montón, está intentando crear un objeto que es más grande que el fragmento contiguo más grande de la memoria en el montón. Esto es más raro, pero ciertamente sucede en algunos casos. El montón normal se compactará durante las ejecuciones de gc, pero el montón de objetos grandes no lo hará.
Hay un buen article en MSDN sobre el gran montón de objetos.
Editar: Recordé otra forma de salir de la memoria. Puede intentar y crear un objeto que tenga más de 2 GB de tamaño. Ese es el tamaño máximo de objeto en .NET incluso en 64 bits.
En primer lugar, como mínimo mencione el entorno (si corresponde) de lo que se trata su pregunta. Al menos .Net y Java tienen una excepción OOM. En segundo lugar, 2) esta ni siquiera es una pregunta adecuada. ¿Que estas preguntando? Votando para cerrar. – sleske
1) Enveloment es .Net C# 2) por qué esta pregunta no es correcta – Buzz
Bien, pregunta 1) una pregunta, pero tan general que realmente no tiene una respuesta significativa. 2) no es una pregunta, y 3) debería al menos obtener un signo de interrogación. Por favor, intente utilizar la puntuación y la ortografía adecuadas, y lo más importante, dar un contexto. – sleske