Мой вопрос связан с событиями:C#: Несколько событий Поднимает
У меня есть класс с TaskAComplete
Событие, которое возникает, когда TaskA
завершена.
При нажатии кнопки я подписываюсь TaskACompleteEvent
MyObject.TaskAComplete += new EventHandler(MethodToCall);
Но в другом турнире я хочу отказаться от подписки на TaskAComplete
события, когда событие происходит в первый раз.
с:
MyObject.TaskAComplete -= MethodToCall;
А потом, когда кнопка нажата в следующий раз, чтобы подписаться на TaskAComplete
событие снова.
Теперь, когда я запускаю приложение и нажимаю кнопку «В первый раз, когда он вызывает событие правильно». Но когда я нажимаю кнопку «Во второй раз, когда событие увеличивается два раза подряд». (Третий клик -> Событие увеличивается три раза подряд и т. Д.)
Когда я подписываю событие в Контракторе формы, он поднимается только один раз за каждый клик.
Почему Событие приходит несколько раз?
У меня есть что-то вроде машины состояния, и я в разных состояниях разрешен или нет. Именно поэтому мне нужно заблокировать событие. Как это можно сделать? – rubiktubik