Наблюдение за увеличением используемой памяти является ошибочным в .NET для обнаружения утечки памяти.
Это легко сделать утечку памяти в WPF, однако. Я бы предложил использовать немного более визуальный инструмент, такой как Redgate Ants Memory Profiler (14-дневная бесплатная пробная версия). Используйте этот метод для проверки на утечки:
- Нажмите кнопку один раз (чтобы съесть любой разогрев, который у вас может быть)
- Сделайте снимок
- Нажмите кнопку еще раз
- Сделайте снимок
Когда вы заходите в «Список классов» и проверяете фильтр на «Из текущего снимка: только новый объект». Это должно дать вам лучшее представление о том, есть ли у вас объекты, которые никогда не отпустят.
Еще одна особенность Ants Memory Profiler заключается в том, что он везде содержит ссылки на видео, которые объясняют, как найти утечку. Отслеживание утечек - это черное искусство, и приятно иметь помощь.
Нет, я не работаю на Redgate:)