イベントハンドラーがイベントに追加または削除されるときに、いくつかの追加ロジックを実装しようとしています。
最近、.netのデフォルトの実装が変更されたことを認識しています。
実装をデフォルトの実装にできるだけ近づけたいと思います。
誰かが私に、コンパイラーがイベントを実装する方法を示す何かを指摘/提供できますか?
この一連のブログ投稿を参照してください。
C#<4では、sで単純なデリゲート操作を使用していましたlock
。
Interlocked.CompareExchange
C#4+では、ループを呼び出すことにより、より洗練されたロックフリーアルゴリズムを使用します。詳細については、逆コンパイラで確認してください。
クラスが複数のスレッドで使用されないことが確実な場合は、そのいずれも必要ありません。非同期のデリゲート演算を使用するだけです。
それがまさにあなたが探しているものであるかどうかはわかりませんが、この記事では、追加削除ハンドラーの.NET内部のいくつかを示しています。(これらのハンドラーを取得して操作する方法も示します)
http://www.codeproject.com/Articles/308536/How-to-copy-event-handlers-from-one-control-to-ano
そこにロジックを追加しようとしている場合は、記事が面白いと思うかもしれません。