2011-01-12 10 views
1

WinDbgを使用して、メモリリークを追跡し修正しました(または、より正確には、解放されたオブジェクトをガベージコレクションできないというCLRの不具合を修正しました)が、特定のコントロールが1つあります。コントロールは子ウィンドウ内に表示され、ウィンドウが閉じられると、コントロールへの参照が残り、ガベージコレクションできません。私は、リークの原因となった可能性のある問題の大部分であると信じているものを解決しましたが、影響を受けるオブジェクトの!gcrootは、このオブジェクトをまだ保持しているものについては、少なくとも私にはわかりません。出力に含まには関係なく、常に、子ウィンドウに表示されているコンテンツの同じである:Silverlight WinDgメモリリリースの問題

DOMAIN(03FB7238):HANDLEする(固定):79b12f8:ルート:06704260(System.Objectの[]) - > 05719f00(システム。 (System.Windows.Controls.Grid) - > 064d4314(System.Collections(System.IntPtr、mscorlib)、[System.Object、mscorlib]]]])> 064d42b0 .Generic.Dictionary 2[[MS.Internal.IManagedPeerBase, System.Windows],[System.Object, mscorlib]])-> 064d4360(System.Collections.Generic.Dictionary 2 + Entry [064d4218(System.Windows.Controls.Border) - > 064d3860(System.Windows.Controls.Border) - > [システムインテグレーション(System.Windows)]、[System.Object、mscorlib] 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。共有リソース。コントロール。歴史KPIViewerControl)

潜在的に問題の可能性があることについて誰かが考えている、または詳細が必要な場合は、私に知らせてください。

種類よろしく、

クリス

答えて

1

静は固定Object[]を介して格納されているので、IntPtrの辞書への静的な参照することができ、Objectはそれを応援します。辞書に目を通すと、他のエントリが役に立つ手掛かりを提供しているかどうかを調べることができます。

ただし、IntPtrを指定すると、これはSilverlightランタイムが内部的に使用するものと思われます。

私はルーツを調べ、アプリケーションで使用されているすべてのタイプを探し、それらがすべて正常であることを確認します。

+0

Thanx Brian、この問題はSilverlightランタイムで発生したと考えられますので、この問題を回避するためにコントロールを再作成してください。すべてが今はうまくいっており、GCは仕事をしています。 –

関連する問題