我使用我公司提供的 sdk 在 .net 4.0 上创建了一个 WinForm 应用程序。在应用程序中,我正在检查作为 sdk 一部分的服务状态(它在我安装 sdk 时运行。)我正在使用服务控制器类来检查它的状态。像这样的东西。
private string CheckSDKService()
{
ServiceController sc = new ServiceController("MyService");
switch (sc.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
default:
return "Status Changing";
}
}
现在的问题是我不想继续调用它并定期轮询状态。有什么方法可以在服务停止时收到某种通知。我已经看过 WMI 并且无法理解如何在 WinForm c# 应用程序中使用它。还有 NotifyServiceStatusChange 但它在 c++ 中,我不想使用 P\Invoke 或 COM。这个应用程序是 sdk 的示例应用程序,我不想让它复杂化。