В ряде случаев я успешно использовал WinDbg для отслеживания и устранения утечек памяти (или, точнее, неспособности CLR собирать освобожденный объект), но я застрял с одним конкретным элементом управления.Элемент управления отображается в дочернем окне, и когда окно закрывается, ссылка на элемент управления остается и не может быть собрана сборщиком мусора.Я решил то, что, по моему мнению, является большинством проблем, которые могли вызвать утечку, но! Gcroot затронутого объекта не ясен (по крайней мере мне) относительно того, что все еще держится за этот объект.Выходное значение всегда одинаково, независимо от содержимого, представляемого в дочернем окне:
ДОМЕН (03FB7238): РУЧКА (закреплено): 79b12f8: Корень: 06704260 (System.Object []) -> 05719f00 (система.Collections.Generic.Dictionary 2[[System.IntPtr, mscorlib],[System.Object, mscorlib]])->
067c1310(System.Collections.Generic.Dictionary
2 + Запись [[System.IntPtr, mscorlib], [System.Object, mscorlib]] []) -> 064d42b0 (System.Windows.Controls.Grid) -> 064d4314 (система.Collections.Generic.Dictionary 2[[MS.Internal.IManagedPeerBase, System.Windows],[System.Object, mscorlib]])->
064d4360(System.Collections.Generic.Dictionary
2 + Entry [[MS.Internal.IManagedPeerBase, System.Windows], [System.Object, mscorlib]] []) -> 064d3860 (System.Windows.Controls.Border) -> 064d4218(System.Collections.Generic.Dictionary 2[[MS.Internal.IManagedPeerBase, System.Windows],[System.Object, mscorlib]])->
064d4264(System.Collections.Generic.Dictionary
2 + Entry [[MS.Internal.IManagedPeerBase, System.Windows], [System.Object, mscorlib]] []) -> 064d3bfc (System.Windows.Controls.ContentPresenter)-> 064d3d64 (System.Collections.Generic.Dictionary 2[[MS.Internal.IManagedPeerBase, System.Windows],[System.Object, mscorlib]])->
064d3db0(System.Collections.Generic.Dictionary
2 + Entry [[MS.Internal.IManagedPeerBase, System.Windows], [System.Object, mscorlib]] []) -> 064d3dec (System.Collections.Generic).Dictionary 2[[System.UInt32, mscorlib],[System.Windows.DependencyObject, System.Windows]])->
064d3e38(System.Collections.Generic.Dictionary
2 + Entry [[System.UInt32, mscorlib], [System.Windows.DependencyObject, System.Windows]] []) -> 06490b04(Insurer.Analytics.SharedResources.Controls.HistoricalKPIViewerControl)
Если у кого-либо есть какие-либо идеи о том, что может быть проблемой, или если вам требуется дополнительная информация, сообщите мне.
С уважениемКрис