Возможно ли, что приложение .NET 3.5 сообщило .NET runtime: "эй, я собираюсь использовать n МБ-память позже, так что, пожалуйста, либо сделайте так много сейчас, либо не сработайте сейчас?"
Контекст для этого: у меня есть консольное приложение С#, которое запускает запрос базы данных, который возвращает много данных, а затем выполняет некоторую обработку. Запрос может занять очень много времени (часы), а использование памяти продолжает увеличиваться по мере чтения результатов. После завершения запроса происходит немедленный всплеск памяти из-за обработки, которую мне нужно сделать. Если на машине не хватает ОЗУ, приложение терпит неудачу в этой точке - после траты времени на запрос! Это очень неприятно для пользователя. Если оперативной памяти недостаточно, я бы хотел, чтобы приложение быстро вышло из строя.
Конечно, я мог бы попробовать взломать как выделение большого массива, который мне действительно не нужен, а затем установить его на нуль, прежде чем мне действительно понадобится память, но это не идеально, потому что это может фактически вызвать процесс для исчерпания памяти, если в противном случае ее хватит. В идеале, я бы хотел использовать больше памяти, чем нужно, но просто не выполнял раньше времени, если определенная сумма не может быть гарантирована в течение всего времени моего приложения. Возможно ли это?