Wenn ich einen Ereignishandler zur Laufzeit am zuweisen und es ist in einem Ort, der mehrmals aufgerufen werden kann, was ist die empfohlene Praxis mehr Zuweisungen des gleichen Handler auf das gleiche Ereignis zu verhindern.Verhindern gleiche Ereignishandler Zuordnung mehrmals
object.Event += MyFunction
Wenn Sie dies an einer Stelle einfügen, die mehr als einmal aufgerufen wird, wird der Handler n-mal ausgeführt (natürlich).
Ich habe Zuflucht alle vorherigen Handler zu entfernen, bevor sie über
object.Event -= MyFunction;
object.Event += MyFunction;
Diese hinzuzufügen versucht funktioniert, aber scheint weg irgendwie. Irgendwelche Vorschläge zur richtigen Handhabung;) dieses Szenarios.
Ihre Lösung das Ereignis zunächst entfernt und dann das Hinzufügen ist eigentlich eine hoch bewertete Antwort auf http://stackoverflow.com/questions/937181/c-sharp-pattern-to-prevent-an-event-handler-hooked- zweimal (diese Frage hat auch mehr Antworten zu diesem Thema) – OneWorld
möglich duplicate von [Wie man sicherstellt, dass ein Ereignis nur einmal abonniert wird] (http://stackoverflow.com/questions/367523/how-to-ensure-an-event -is-only-subscribe-to-once) –