この質問にはすでに答えがあります。
大きなWinFormアプリケーションを開発していて、メモリリークが発生しています。問題の1つは、フォームを閉じてもメモリが解放されなかったことです(私は.NET Memory Profilerを使用しました)。メモリリークを防ぐために、イベントハンドラを手動でフォームから削除することをお勧めする人もいます。フォームを閉じるときにデザイナーによって作成されたLoad、Form_Closingイベントハンドラを削除する必要があるということですか。私は.NET 4.5を使用しています。ありがとうございました!
いいえ。イベントハンドラの問題は、ハンドラを実行するオブジェクトがメソッドを持つオブジェクトによって参照されることです。つまり、イベントを発生させるオブジェクトは、ハンドラを持つオブジェクトよりもずっと長く存続することになります。ハンドラを使ってクリーンアップすることはできません。
イベントを処理するオブジェクトは、イベントを処理するオブジェクトへの参照を持たないため、イベントを処理するオブジェクトは、イベントを処理するオブジェクトよりもはるかに短い有効期間を持ちます。