У меня есть устаревшее программное обеспечение с кодом C ++ и C #, которое работало в Windows XP SP3 и .NET 2.0 (VS2005). Программное обеспечение выполняло сканирование и обработку изображений с большим объемом памяти. ПК имеет 2 Гб оперативной памяти. Размер стека зарезервирован до 15 МБ для программного процесса.
Это программное обеспечение было перенесено в .NET4 (VS2010). Во время миграции логика кода не изменяется. Программное обеспечение работает правильно для отдельных сканирований и обработки. Тем не менее, для непрерывной работы программы происходит сбой программного обеспечения в случайных местах. Для всех сбоев программа просмотра событий показывает «Программное обеспечение было прервано из-за переполнения стека». При отладке аварийного дампа он указывает на ntdll.dll (ядро DLL).
Чтобы решить эту проблему, были испробованы следующие решения. Никто из них не работал.
Пожалуйста, дайте мне знать, если миграция .NET 4 требует значительного увеличения оперативной памяти для запуска программного обеспечения без сбоев. Входные данные об изменении требований к памяти для миграции с .net 2 на .net 4 приветствуются.
Задача ещё не решена.