Существует ли .Net API для обнаружения изменений состояния службы Windows без опроса? - PullRequest
2 голосов
/ 16 декабря 2010

Привет! Я использую класс ServiceController для запуска и остановки службы Windows, я также могу запросить свойство Status, чтобы определить, работает служба или нет.Я хотел бы отслеживать и отображать статус этого сервиса в моем приложении.К сожалению, это кажется возможным только путем опроса свойства Status.Я бы предпочел использовать некоторый механизм уведомлений.

Есть ли какое-либо событие в .NET, которое может уведомить меня об изменении статуса службы?

Ответы [ 3 ]

1 голос
/ 16 декабря 2010

Если вы ориентируетесь на Windows Vista или выше, вы можете позвонить NotifyServiceStatusChange

WMI будет опрашивать сервисы за вас. Проверьте Как я могу отслеживать изменения состояния служб Windows под Windows XP?

0 голосов
/ 16 декабря 2010

Если они не добавили что-то в .NET 4.0, вам придется опросить. Это подход, который я использую в настоящее время в своем проекте. Я создал класс, который позволяет заинтересованным сторонам указывать, какой сервис отслеживать. Затем запускается фоновый поток, который отслеживает состояние службы раз в секунду. Если обнаружено изменение в статусе, запускается событие для уведомления заинтересованных сторон о старых и новых статусах.

0 голосов
/ 16 декабря 2010

Не то, что я знаю, но вы могли бы взглянуть на использование WMI

http://msdn.microsoft.com/en-us/library/bb404655.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...