3

閉じたときにリソースを解放しないフォームがあります。何が起こっているのかを調べるには、どのツールを使用しますか?

4

1 に答える 1

4

VS2012 には組み込みのプロファイラーがあります (VS2012 のバージョンによって異なります)。Microsoft には、.NET 4 用の無料の CLR Profilerもあります。

Red Gate は優れたメモリ プロファイラーを作成します。これは、上記の代替手段よりも使いやすいと思いますが、無料ではありません。問題を解決するために使用できる、完全に機能する無料試用版があります。

あなたの問題について:フォームの通常のリークの問題はイベントハンドラです。破棄されていない中央クラスに結合されているイベント ハンドラーがフォームに含まれていないことを確認してください。

フレームワークには、「UI テーマの変更」などの中央ウィンドウ イベントをフレームワーク クラスの静的フィールドにアタッチする厄介なバグがいくつかあります。これにより、たとえば、Windows フォーム ツールバーをホストするクラスがガベージ コレクトされないという結果になる可能性があります。イベント ハンドラーのリークは見つけるのが難しいため、明らかにフレームワーク コードにまだ存在しているようです。

于 2012-09-26T07:28:44.073 に答える