可能性の重複:基本的に、私は(デタッチ匿名のEventHandler
private void AttachEvent(AwesomeObject someObject) { int id = GetCurrentIdValue(); someUnknownClass.SomeEvent +=() => someObject.CreateAwesomeness(id); }
:OK
Unsubscribe anonymous method in C# How do I Unregister 'anonymous' event handler
は、私は次のコードを持って言うことができますイベントハンドラでローカル変数を使用する必要性を説明しようとしています。 this threadで提案されている)。メモリ管理の観点からは、ハンドラにハンドルがないため、someUnknownClass.SomeEventから切り離すことはできません。さらに、someUnknownClassが第三者型であると仮定しましょう。そのクラス内にコードを追加して、イベントを内部的にデタッチすることはできません。
私の質問は、匿名メソッドをイベントハンドラとして使用できるうちにメモリリークを回避するにはどうすればよいですか。
と同様に:http://stackoverflow.com/questions/1348150/how-do-i-unregister-anonymous-event-handlerとhttp://stackoverflow.com/questions/2051357/c-sharp-adding削除イベント、匿名イベントハンドラなどがあります。 – Oded
特にlambdasについては、ここで答えてください:http://stackoverflow.com/a/1362244/1583 – Oded