Zitat: |
Aber wenn ich 2 Objekte habe hängen doch deren die Events nich zusammen o.O |
Nein. Du hast nur ein Objekt mit einen Event. An dem Event können aber beliebig viele
andere Objekte aus beliebigen anderen Threads dranhängen und horchen.
Dein Aufruf von
LoggedIn(this, e) kann theoretisch zu tausenden Methodenaufrufen in anderen Objekten, die alle deinen Event registriert, haben führen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| meinObjekt.LoggedIn += Objekt1.LoggedInEventHandler; meinObjekt.LoggedIn += Objekt2.LoggedInEventHandler; meinObjekt.LoggedIn += Objekt3.LoggedInEventHandler; meinObjekt.LoggedIn += Objekt4.LoggedInEventHandler;
... und wieder abmelden
meinObjekt.LoggedIn -= Objekt1.LoggedInEventHandler; meinObjekt.LoggedIn -= Objekt2.LoggedInEventHandler; meinObjekt.LoggedIn -= Objekt3.LoggedInEventHandler; meinObjekt.LoggedIn -= Objekt4.LoggedInEventHandler; |
wen das jetzt nicht so einfach wie hier hintereinander steht sondern die auf deinen Event lauschenden anderen Objekte sich in anderen Thread ~beliebig~ an und abmelden hast du in der OnLoggedIn Methode ein potentielles Problem wenn du nicht eine lokale, dann unveränderliche Kopie, des Event Delegaten anlegst.