Si j'attribue un gestionnaire d'événements au moment de l'exécution et qu'il se trouve dans un emplacement pouvant être appelé plusieurs fois, il est recommandé d'empêcher plusieurs affectations du même gestionnaire au même événement. Ajouter ceci à un endroit qui sera appelé plus d'une fois exécutera le gestionnaire 'n' fois (bien sûr).Empêcher la même affectation de gestionnaire d'événements plusieurs fois
J'ai eu recours à enlever tout gestionnaire précédent avant d'essayer d'ajouter via
object.Event -= MyFunction;
object.Event += MyFunction;
Cela fonctionne, mais semble hors d'une certaine manière. Toutes les suggestions sur la bonne manipulation;) de ce scénario.
Votre solution de suppression de l'événement d'abord, puis l'ajout est en fait une réponse élevée à http://stackoverflow.com/questions/937181/c-sharp-pattern-to-prevent-an-event-handler-hooked- deux fois (cette question a aussi plus de réponses à ce sujet) – OneWorld
duplicata possible de [Comment assurer qu'un événement est seulement souscrit à une fois] (http://stackoverflow.com/questions/367523/how-to-ensure-an-event -is-only-abonné-à-une fois) –