您好我使用ServiceController类来启动和停止Windows服务,我还可以查询Status属性以检测服务是否正在运行。我想在我的应用程序中监视和显示此服务的状态。不幸的是,这似乎只能通过轮询Status属性来实现。我宁愿使用一些通知机制。
.NET中是否有任何可以通知我服务状态已发生变化的事件?
答案 0 :(得分:1)
如果您的目标是Windows Vista或更高版本,则可以调用NotifyServiceStatusChange
WMI将为您轮询服务。查看How can I monitor status changes of windows services under windows xp?
答案 1 :(得分:0)
我不知道,但您可以查看使用WMI
答案 2 :(得分:0)
除非他们在.NET 4.0中添加了某些内容,否则您必须进行投票。这是我目前使用我的项目的方法。我创建了一个类,允许感兴趣的各方指定要监视的服务。然后启动后台线程,每秒监视一次服务状态。如果检测到状态更改,则会触发事件以通知相关方新旧状态。