Поделиться через


Разрешение вопросов, связанных с исключениями: System.OutOfMemoryException

Обновлен: Ноябрь 2007

Исключение OutOfMemoryException возникает в случае неудачной попытки выделить память.

Полезные советы

  • При создании массива, убедитесь, что установлен правильный размер.
    Дополнительные сведения для пользователей Visual Basic см. в разделе Массивы в Visual Basic.

    Дополнительные сведения для пользователей C# см. в разделе Массивы (Руководство по программированию на C#).

  • Убедитесь в наличии достаточного объема памяти для внутренних целей и для новых управляемых объектов.
    При программировании на .NET Compact Framework, среда CLR генерирует это исключение, когда недостаточно памяти для внутренних целей или для новых управляемых объектов. Для того чтобы предотвратить возникновение исключения, не программируйте большие методы, которые занимают в памяти 64 и больше килобайт.

Примечания

Чрезмерное использование управляемой памяти обычно вызывается:

  • Считыванием в память больших наборов данных.

  • Созданием больших записей в кеше

  • Передачей или загрузкой больших файлов.

  • Чрезмерным использованием регулярных выражений или строк при синтаксическом анализе файлов.

  • Чрезмерным состоянием просмотра.

  • Слишком большим объёмом данных в состоянии сеанса или слишком большим количеством сеансов.

Это исключение может быть сгенерировано с дополнительным сообщением: Недостаточно свободной памяти для завершения этой операции, которое появляется при вызове метода для объекта COM, возвращающем определяемый пользователем тип, содержащий безопасный массив (массив не фиксированного размера). Это происходит, потому что .NET Framework. не может маршалировать поля структуры с безопасным типом массива.

См. также

Задачи

Практическое руководство. Поиск дополнительных сведений об исключении с помощью помощника по исключениям

Практическое руководство. Объявление переменной типа массива

Ссылки

OutOfMemoryException