В принципе существует два шаблона, позволяющих избежать дублирования регистрации обработчиков событий: (В соответствии с этим обсуждением: шаблон С#, чтобы предотвратить перехват обработчика событий)
-
Используя пространство имен System.Linq и проверьте, зарегистрирован ли обработчик события, вызывая
GetInvocationList().Contains(MyEventHandlerMethod);
-
Выполняйте регистрацию перед регистрацией, например:
MyEvent -= MyEventHandlerMethod; MyEvent += MyEventHandlerMethod;
Мой вопрос в том, насколько эффективен, какой из них лучше, или существует существенная разница между ними в производительности?