私はWPFの初心者で、カスタムコントロールをほとんど開発していません。私はいつも私のカスタムコントロールのメモリリークを遭遇しています。私のコントロールはビジュアルツリーから削除されても、メモリから削除されませんでした。メモリリークを伴うカスタムコントロール
我々はWPFでのメモリリークのないカスタムコントロールを作成するに従わなければならない任意のデザインパターンはありますか?
それとも私たちがこれを行うにはIDisposableを使用できますか?しかし、この場合、Dispose()メソッドは暗黙的に呼び出されません。 WPFコントロールのButton、TextBoxなどのFrameowrkビルドはIDisposableではないようです。しかし、彼らは記憶が漏れません。
任意の迅速なアドバイスを本当に感謝しています。すべてのイベントが未登録になるまで予め
おかげで、
RE 'IDisposable'実装。 'Dispose()'は暗黙に呼び出されていないので、あなた自身で呼び出す必要があります。 REメモリリーク'UserControl'(イベントハンドラを含む)への参照をすべて削除してもよろしいですか?そうでない場合、ガベージコレクタは、クリーンアップの準備が整っていない可能性があります。また、問題のサンプルを提供するコードを投稿することはできますか? –
@WPF Loverあなたのコントロールがまだメモリに残っていることをどのように知っていますか? –
@Dimitry:私は赤いゲートでプロファイリングしていますANTS –