W przypadku konkretnego pytania „Czy pClass zostanie wyrzucony”: subskrypcja zdarzenia nie ma wpływu na zbieranie pClass (jako wydawcy).
W przypadku GC ogólnie (w szczególności celu): zależy od tego, czy MyFunction jest statyczna czy oparta na instancji.
Delegat (na przykład subskrypcja zdarzenia) do metody instancji zawiera odwołanie do instancji. Tak więc, subskrypcja wydarzenia zapobiegnie GC. Jednak gdy tylko obiekt publikujący zdarzenie (pClass powyżej) kwalifikuje się do kolekcji, przestaje to stanowić problem.
Zauważ, że jest to jednokierunkowe; tj. jeśli mamy:
publisher.SomeEvent += target.SomeHandler;
wtedy „wydawca” utrzyma „cel” przy życiu, ale „cel” nie utrzyma przy życiu „wydawcy”.
Więc nie: jeśli pClass i tak zostanie zgromadzony, nie ma potrzeby anulowania subskrypcji słuchaczy. Jednakże, jeśli pClass był długowieczny (dłużej niż instancji z MyFunction), następnie pClass mógł utrzymać tę instancję żyje, więc to będzie konieczne, aby wypisać się, jeśli chcesz cel mają być zebrane.
Z tego powodu zdarzenia statyczne są jednak bardzo niebezpieczne, gdy są używane z programami obsługi opartymi na instancjach.