Мне интересно, какова «лучшая практика», когда я обращаюсь к обработчику событий с просьбой отписаться от самого себя после запуска.
Для контекста, это моя ситуация.Пользователь вошел в систему и находится в состоянии готовности для обработки рабочих элементов.Они получают задание, обрабатывают его, а затем снова возвращаются к готовности.На этом этапе они могут захотеть сказать, что они недоступны для большего количества рабочих элементов, но один из них отправляется им в любом случае.Что я хочу сделать, так это разрешить пользователю «ставить в очередь» сообщение «Я недоступен», как только эта операция станет возможной.
public event SomeHandler StateChanged = delegate {};
public void QueueNotAvailable()
{
StateChanged += (s,e) => {
if (e.CanGoNotAvailable) {
someObject.NotAvailable();
StateChanged -= {thishandler};
}
}
}
Для моих целей, если отдельный потокслучается, чтобы запустить события, и этот конкретный обработчик запускается дважды, это не проблема.Запрос одной и той же функции очень близко друг к другу является приемлемым.Я просто не хочу, чтобы он стрелял каждый раз, когда операция разрешена.