Я пытаюсь освободить большой кусок объектов (элементы управления WPF, сетки Devexpress с большим количеством данных и т. Д.) И обнаружил, что некоторые из этих объектов сохраняются в памяти даже после нескольких GC.Collect () и GC.WaitForPendingFinalizers() вызывает.
Когда я захожу в Средства диагностики, включаю профилирование кучи и создаю моментальный снимок, я нахожу корневые узлы «Зависимый дескриптор» в списке «Пути к корню».
Как можноЯ нахожу фактический обработчик события, ответственный за это?Насколько я понял, за это отвечает обработчик событий, который не является незарегистрированным.Я прав?
Я получаю что-то подобное в окне Paths to Root:
EventHandler<EventArgs> <0x1AC128ECF20> [Dependent Handle, RepeatButton <0x1AC128ECD20>]
Я пытался найти дополнительную информацию об этом на основе этого Анализировать память .NET Frameworkвыдает , но потом я застрял.( Я добавил это из своего комментария ниже, я думаю, что это добавляет полезную информацию к вопросу ).
Что именно представляют собой зависимые дескрипторы?(Документация по этому вопросу очень расплывчата).