Либо ваше приложение использовало доступную ему память, либо у вас возникла проблема с фрагментацией кучи.
В первом случае вы создали достаточно объектов для захвата всей памяти, и у вас все еще есть ссылка на них, чтобы сборщик мусора не мог их очистить.
Во втором случае, фрагментация кучи, вы пытаетесь создать объект, который больше, чем самый большой непрерывный кусок памяти в куче. Это реже, но, конечно, происходит в некоторых случаях. Обычная куча будет уплотняться во время выполнения gc, но большая куча объекта не будет.
В MSDN есть хорошая article о кучке большого объекта.
Редактировать: Я вспомнил еще один способ избавиться от памяти. Вы можете попытаться создать объект размером более 2 ГБ. Это максимальный размер объекта в .NET даже на 64-битном уровне.
Во-первых, по крайней мере, упоминание об окружающей среде (если есть), о вашем вопросе. По крайней мере .Net и Java имеют исключение OOM. Во-вторых, 2) это даже не вопрос. Что ты спрашиваешь? Голосование закрывается. – sleske
1) Envoirment is .Net C# 2) почему этот вопрос не является правильным – Buzz
Ну, вопрос 1) вопрос, но настолько общий, что на самом деле он не имеет значимого ответа. 2) не является вопросом, и 3) должен по крайней мере получить знак вопроса. Попробуйте использовать правильную пунктуацию и орфографию, а самое главное, и дайте некоторый контекст. – sleske