У меня есть приложение WPF, написанное с использованием MVVM Prism. В нем много вкладок. Эти вкладки потребляют около 2,3 МБ памяти. Клиент жалуется, что после открытия и закрытия нескольких десятков вкладок приложение потребляет гораздо больше памяти, чем с самого начала. Кроме того, для открытия новых вкладок требуется больше памяти, поэтому приложение не использует старые вкладки и вместо этого создает новые.утечки памяти в WPF MVVM Призматическое приложение
Таким образом, очевидно, что старые вкладки не собираются с мусором. Очевидно, потому что есть некоторые ссылки, указывающие на них.
Как я мусор-собираю их в любом случае? Должен ли я просто реализовать IDisposable и удалить все ссылки на все, что возможно? И убедитесь, что метод Dispose также вызывается в деструкторе? Я не уверен, что смогу удалить все необработанные ссылки.
Возможно, есть хороший инструмент, который я могу использовать, что может помочь мне с этой проблемой?
«Очевидно, потому что есть некоторые ссылки, указывающие на них» может не быть правдой. Если GC не чувствует, как сбор мусора, они остаются в памяти, даже если ссылок нет. – stijn
@stijn Я назвал GC.Collect, но они все еще остались в памяти. –