如何实时捕获被监控的服务状态?不要通过定时获取服务状态来实现。
能否通过像事件触发的方式实现?服务一启动或者一停止能马上收到消息的方式。

解决方案 »

  1.   


    System.ServiceProcess.ServiceController sc=new System.ServiceProcess.ServiceControllersc.WaitForStatus(ServiceControllerStatus.Stopped);
    //下边写处理服务停止代码 .
    ...
    //其它状态同样。想监视几种状态就启动几个这样的线程。 
      

  2.   

    ServiceController sc = new ServiceController("");
     if (sc.Status == ServiceControllerStatus.Running)
      {
      sc.Stop();
      sc.WaitForStatus(ServiceControllerStatus.Stopped); //等待服务停止
      if (sc.Status == ServiceControllerStatus.Stopped)
      {
      sc.Start();
      }
      }