Поделиться через


ServiceController.WaitForStatus Метод

Определение

Ожидает достижения службой указанного состояния.

Перегрузки

WaitForStatus(ServiceControllerStatus)

Постоянно ожидает достижения службой указанного состояния.

WaitForStatus(ServiceControllerStatus, TimeSpan)

Ожидает достижения службой заданного состояния или истечения заданного тайм-аута.

WaitForStatus(ServiceControllerStatus)

Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs

Постоянно ожидает достижения службой указанного состояния.

public:
 void WaitForStatus(System::ServiceProcess::ServiceControllerStatus desiredStatus);
public void WaitForStatus (System.ServiceProcess.ServiceControllerStatus desiredStatus);
member this.WaitForStatus : System.ServiceProcess.ServiceControllerStatus -> unit
Public Sub WaitForStatus (desiredStatus As ServiceControllerStatus)

Параметры

desiredStatus
ServiceControllerStatus

Ожидаемое состояние.

Исключения

Параметр desiredStatus не соответствует ни одному из значений, определенных в перечислении ServiceControllerStatus.

Примеры

В следующем примере класс используется для ServiceController проверки остановки службы Alerter. Если служба остановлена, в примере запускается служба и ожидается, пока состояние службы не будет равно Running.

// Check whether the Alerter service is started.
ServiceController^ sc = gcnew ServiceController;
if ( sc )
{
   sc->ServiceName =  "Alerter";
   Console::WriteLine(  "The Alerter service status is currently set to {0}", sc->Status );
   if ( sc->Status == (ServiceControllerStatus::Stopped) )
   {
      // Start the service if the current status is stopped.
      Console::WriteLine(  "Starting the Alerter service..." );
      try
      {
         // Start the service, and wait until its status is "Running".
         sc->Start();
         sc->WaitForStatus( ServiceControllerStatus::Running );
         
         // Display the current service status.
         Console::WriteLine(  "The Alerter service status is now set to {0}.", sc->Status );
      }
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine(  "Could not start the Alerter service." );
      }
   }
}

// Check whether the Alerter service is started.

ServiceController sc  = new ServiceController();
sc.ServiceName = "Alerter";
Console.WriteLine("The Alerter service status is currently set to {0}",
                   sc.Status);

if (sc.Status == ServiceControllerStatus.Stopped)
{
   // Start the service if the current status is stopped.

   Console.WriteLine("Starting the Alerter service...");
   try
   {
      // Start the service, and wait until its status is "Running".
      sc.Start();
      sc.WaitForStatus(ServiceControllerStatus.Running);

      // Display the current service status.
      Console.WriteLine("The Alerter service status is now set to {0}.",
                         sc.Status);
   }
   catch (InvalidOperationException)
   {
      Console.WriteLine("Could not start the Alerter service.");
   }
}

' Check whether the Alerter service is started.

Dim sc As New ServiceController()
sc.ServiceName = "Alerter"
Console.WriteLine("The Alerter service status is currently set to {0}", sc.Status)

If sc.Status = ServiceControllerStatus.Stopped Then
   ' Start the service if the current status is stopped.
   Console.WriteLine("Starting the Alerter service...")

   Try
      ' Start the service, and wait until its status is "Running".
      sc.Start()
      sc.WaitForStatus(ServiceControllerStatus.Running)
      
      ' Display the current service status.
      Console.WriteLine("The Alerter service status is now set to {0}.", sc.Status)
   Catch 
      Console.WriteLine("Could not start the Alerter service.")
   End Try
End If

Комментарии

Используйте , WaitForStatus чтобы приостановить обработку приложения до тех пор, пока служба не достигнет требуемого состояния.

Примечание

Метод WaitForStatus ожидает приблизительно 250 миллисекунда между каждой проверкой состояния. WaitForStatus не удается обнаружить случай изменения службы на desiredStatus , а затем сразу же на другое состояние в этом интервале.

См. также раздел

Применяется к

WaitForStatus(ServiceControllerStatus, TimeSpan)

Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs
Исходный код:
ServiceController.cs

Ожидает достижения службой заданного состояния или истечения заданного тайм-аута.

public:
 void WaitForStatus(System::ServiceProcess::ServiceControllerStatus desiredStatus, TimeSpan timeout);
public void WaitForStatus (System.ServiceProcess.ServiceControllerStatus desiredStatus, TimeSpan timeout);
member this.WaitForStatus : System.ServiceProcess.ServiceControllerStatus * TimeSpan -> unit
Public Sub WaitForStatus (desiredStatus As ServiceControllerStatus, timeout As TimeSpan)

Параметры

desiredStatus
ServiceControllerStatus

Ожидаемое состояние.

timeout
TimeSpan

Объект TimeSpan, определяющий временной интервал, в течение которого ожидается достижение службой заданного состояния.

Исключения

Параметр desiredStatus не соответствует ни одному из значений, определенных в перечислении ServiceControllerStatus.

Срок действия значения, указанного для параметра timeout, истекает.

Комментарии

Используйте , WaitForStatus чтобы приостановить обработку приложения до тех пор, пока служба не достигнет требуемого состояния.

Примечание

Метод WaitForStatus ожидает приблизительно 250 миллисекунда между каждой проверкой состояния. WaitForStatus не удается обнаружить случай изменения службы на desiredStatus , а затем сразу же на другое состояние в этом интервале.

См. также раздел

Применяется к