в 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);
Чтобы запросить каждого абонента отдельно, вам необходимо получить доступ к списку:
foreach (CancelEventHandler subHandler in handler.GetInvocationList())
{
// treat individually
}
Затем вы можете проверить каждого по очереди; в противном случае вы получите окончательное голосование.
Обычно в большинстве случаев класс разрешает только несколько подписчиков, но каждый получает один и тот же экземпляр CancelEventArgs.
Если какой-либо из подписчиков устанавливает для параметра Cancel значение true, операция будет обработана как отменено.
Вы можете обойти это, получив список вызовов и отправив событие каждому подписчику, но обычно в этом нет необходимости.