Форма не утилизируется после закрытия - PullRequest
0 голосов
/ 31 октября 2018

У меня есть приложение Windows Form, в котором я использовал элементы управления Infragistics. Я анализирую процесс памяти после открытия формы, использование памяти занимает 27 МБ, но после закрытия память должна освободиться, но она не работает. При закрытии я также вызвал метод Dispose.

Close button click.

After opening the form memory usage

After closing the form memory usage

1 Ответ

0 голосов
/ 31 октября 2018

Некоторые мысли.

  • Не используйте Диспетчер задач для диагностики проблем с памятью. Используйте профилировщик памяти. .Net управляет своей памятью способом, который не совсем очевиден, и Диспетчер задач дает ложные предположения о такой природе.
  • То, что вы что-то утилизируете, вовсе не означает, что сборщик мусора будет стремиться очистить и агрессивно вернуть память операционной системе, он сделает это, когда почувствует, что это основано на нехватке памяти и эвристике.
  • Если вы создаете форму (и ее модал), вы можете просто поместить ее в выражение using, тогда у вас будет душевное спокойствие, что вы все делаете правильно

Дополнительные ресурсы

Основы сбора мусора

...