[英]How can my C# Windows app be notified of changes in network status without polling?
[英]Is there an .Net API to detect status changes of a windows service without polling?
嗨,我正在使用ServiceController类启动和停止Windows服务,我也可以查询Status属性以检测服务是否正在运行。 我想在我的应用程序中监视和显示此服务的状态。 不幸的是,这似乎只能通过轮询Status属性来实现。 我宁愿使用一些通知机制。
.NET中是否有任何事件可以通知我服务状态已更改?
如果您的目标是Windows Vista或更高版本,则可以致电NotifyServiceStatusChange
WMI将为您轮询服务。 检查如何在Windows XP下监视Windows服务的状态更改?
我不知道,但是您可以看看使用WMI
除非他们在.NET 4.0中添加了某些内容,否则您必须进行轮询。 这是我目前在项目中使用的方法。 我创建了一个类,该类允许感兴趣的各方指定要监视的服务。 然后启动一个后台线程,该线程每秒监视一次服务状态。 如果检测到状态变化,则将触发一个事件以将新旧状态通知感兴趣的各方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.