Как события как CancelEventArgs могут использоваться?

в C#:

var sc = new System.ServiceProcess.ServiceController("MyService", "MyRemoteMachine");
sc.Start();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running);
sc.Stop();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
13
задан FerranB 4 February 2012 в 21:57
поделиться

2 ответа

Чтобы запросить каждого абонента отдельно, вам необходимо получить доступ к списку:

foreach (CancelEventHandler subHandler in handler.GetInvocationList())
{
     // treat individually
}

Затем вы можете проверить каждого по очереди; в противном случае вы получите окончательное голосование.

8
ответ дан 2 December 2019 в 00:31
поделиться

Обычно в большинстве случаев класс разрешает только несколько подписчиков, но каждый получает один и тот же экземпляр CancelEventArgs.

Если какой-либо из подписчиков устанавливает для параметра Cancel значение true, операция будет обработана как отменено.

Вы можете обойти это, получив список вызовов и отправив событие каждому подписчику, но обычно в этом нет необходимости.

6
ответ дан 2 December 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: