Возможно, это проблема моей неопытности в использовании управляемого языка.По сути, проблема заключается в цикле в методе объектов, который выполняется в течение примерно 20 секунд, на протяжении всего цикла этот общий объем использования программ постоянно увеличивается.Теперь все переменные в цикле, которые модифицируются, являются переменными, определенными в области видимости циклов (т. Е. Члены класса не изменяются / перераспределяются в цикле).После завершения всего метода избыточная память все еще используется.
Я абсолютно не знаю, почему / где эта проблема, но вот некоторые вещи, которые могут быть фактором:
- Я использую шрифты в цикле, но я «.Dispose ()» из них и проверил, что нет утечки GDI.
- У меня есть операторы try / catch, которые активно используются.
- Объекты распределены ...
Итак, любые идеи о том, откуда может возникнуть эта проблема, были бы очень полезны, я бы опубликовал код, но его много.Также, как упоминалось выше, память не очищается после выполнения вызова метода и даже после того, как объект, для которого был вызван метод, вышел из области видимости.
Редактировать
Я также только что попробовал метод GC.Collect (), и в общем результате ничего не изменилось.Понятия не имею, но значит ли это, что память не считается «мусором»?Опять же, все распределение выполняется в рамках цикла, поэтому его не следует считать мусором после завершения цикла.Я понимаю, что GC не сразу приступит к его очистке, но использование вызова GC.Collect () должно вызвать это?