Events sind für die Garbage Collection in C# immer eine gewisse Herausforderung. Da der Garbagecollector nur Elemente beseitigt, auf die keine Referenzen mehr bestehen, kann ein registrierter EventHandler zu einem Speicherleck führen. Dies umgeht man in .Net durch ein Weak Event. Die gängigen Lösungen für das Problem gehen meist davon aus, dass man ein Event als ein solches WeakEvent anlegt wodurch sich Objekte nicht anpassen müssen, die einen Eventhandler bei dem Event registrieren. Doch wie geht man vor wenn man einen Eventhandler weak bei einem normalen Event registrieren möchte?
Weiterlesen »