Есть ли возможность использовать больше памяти системы или как-то другое решение.
Переключение на 64-битную версию является единственным простым вариантом.
Существует базовое ограничение .NET для каждого объекта в 1 ГБ (также относится к 64-битной версии), но это не ваша проблема.Для создания объекта .NET должно быть достаточно непрерывной свободной памяти в процессе.Если у вас есть несколько очень больших (> 250 МБ) крупных объектов, становится все менее вероятным, что будет доступно непрерывное адресное пространство.
Опции:
- Использовать несколько процессов имежпроцессное взаимодействие - со всей дополнительной сложностью, которая приносит (особенно в случаях сбоя).
- Загрузка только одного изображения за раз.
- 64bit.
Также естьПрочитайте статью «Внутренние компоненты Windows» о том, как Windows управляет памятью, а затем о том, как .NET GC управляет памятью в фоновом режиме.Не будет никакой замены для того, чтобы знать, что происходит, когда вы перемещаете так много данных.(Такие инструменты, как VMMap , помогут, но только если у вас есть общее представление о том, как все это работает.)