Prism 4を使用してWPFアプリケーションを開発しており、リソースが解放されていないために深刻なメモリリークが発生しています。ANTSメモリプロファイラーを使用して、ガベージコレクターによるメモリの解放を妨げているクラスを検出していますが、このツールは非常に新しいため、その出力についての理解は限られています。
テストケースは、リストからプラグインを選択できるウィンドウを開くことで構成されています。このウィンドウは、ヘッダー、一連のボタン、およびアクティブなWizardPage(つまり、UserControl)を表示するメイン領域を含むWizardコントロールをホストします。プラグインを選択して[次へ]ボタンをクリックすると、さらに多くのWizardPageコントロールがWizard Regionに登録され、RegionAdapterを使用してWizard.Pagesコレクションに追加されます。その後、ユーザーは[次へ] /[前へ]ボタンをクリックしてページ間を移動できます。ウィザードウィンドウを開いて[キャンセル]ボタンをクリックすると、ウィザードコントロールのファイナライザーが期待どおりに呼び出されます。ただし、[キャンセル]ボタンをクリックする前にウィザードウィンドウを開いてプラグインのComboBoxを展開すると、ウィザードコントロールのファイナライザーが呼び出されることはありません。これは、ANTSメモリプロファイラーのウィザード用インスタンスカテゴリのスクリーンショットです。
私たちはほとんどすべてを試しましたが成功しませんでしたが、誰かがここで何が起こっているのかを理解するのを手伝ってくれるでしょうか?
前もって感謝します。