現在、大量のメモリ リークを起こしている既存の Silverlight アプリケーションを修正する必要があります。Redgate の ANT プロファイラーを使用して、考えられる問題を検出することができました。そのうちの 1 つは Web サービスをラップする静的クラスで、非同期計算をサポートする 2 つのイベント ハンドラーが含まれています。
ご想像のとおり、多くのオブジェクトがこのハンドラーにイベントを割り当てますが、ほとんどのオブジェクトはそれを再び解放しません。その結果、これらのオブジェクトはこれらの静的イベントにリンクされているため、解放されることはほとんどありません...
この問題を回避するには、簡単な修正が必要です。では、これらの変更が大きな影響を与えることなく、このメモリ リークを修正するために必要なオプションは何ですか?
イベント ハンドラーを非静的にすると、大きな変更が発生するため、望ましくないアクションが発生します...