У меня есть веб-приложение ASP.NET, и оно использует 5 ГБ памяти, работающей на 64-битной машине Windows 7 с 8 ГБ памяти без каких-либо проблем.
Однако, когда я создаю новое консольное приложение C # на том же компьютере и повторно использую те же компоненты, которые использует веб-приложение, консольному приложению не хватает памяти около 1,6 ГБ (если посмотреть на System.Environment.WorkingSet и System. Diagnostics.Process.GetCurrentProcess (). WorkingSet64). Осталось еще много физической памяти. Он воспроизводится на 2 разных машинах.
И веб-приложение, и консольное приложение используют ThreadPool.QueueUserWorkItem для запуска фонового потока для загрузки большого объема данных. Исключение происходит в фоновом потоке.
Интересно, есть ли какой-либо параметр ограничения памяти по умолчанию в консольном приложении или в ThreadPool. Какие отладочные переменные я могу посмотреть, чтобы увидеть этот предел?