ServiceController.WaitForStatus Método

Definição

Aguarda o serviço atingir o status especificado.Waits for the service to reach the specified status.

Sobrecargas

WaitForStatus(ServiceControllerStatus)

Aguarda infinitamente o serviço atingir o status especificado.Infinitely waits for the service to reach the specified status.

WaitForStatus(ServiceControllerStatus, TimeSpan)

Espera o serviço atingir o status especificado ou o tempo limite especificado expirar.Waits for the service to reach the specified status or for the specified time-out to expire.

WaitForStatus(ServiceControllerStatus)

Aguarda infinitamente o serviço atingir o status especificado.Infinitely waits for the service to reach the specified status.

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)

Parâmetros

desiredStatus
ServiceControllerStatus

O status a ser aguardado.The status to wait for.

Exceções

O parâmetro desiredStatus não é um dos valores definidos na enumeração ServiceControllerStatus.The desiredStatus parameter is not any of the values defined in the ServiceControllerStatus enumeration.

Exemplos

O exemplo a seguir usa a ServiceController classe para verificar se o serviço de alerta está parado.The following example uses the ServiceController class to check whether the Alerter service is stopped. Se o serviço for interrompido, o exemplo iniciará o serviço e aguardará até que o status do serviço seja definido como Running .If the service is stopped, the example starts the service and waits until the service status is set to 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.ToString());

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.ToString());
   }
   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

Comentários

Use WaitForStatus para suspender o processamento de um aplicativo até que o serviço tenha atingido o status necessário.Use WaitForStatus to suspend an application's processing until the service has reached the required status.

Observação

O WaitForStatus método aguarda aproximadamente 250 milissegundos entre cada verificação de status.The WaitForStatus method waits approximately 250 milliseconds between each status check. WaitForStatus Não é possível detectar o caso do serviço observado, alterando para o desiredStatus e, imediatamente, para outro status nesse intervalo.WaitForStatus cannot detect the case of the observed service changing to the desiredStatus and then immediately to another status in that interval.

Confira também

Aplica-se a

WaitForStatus(ServiceControllerStatus, TimeSpan)

Espera o serviço atingir o status especificado ou o tempo limite especificado expirar.Waits for the service to reach the specified status or for the specified time-out to expire.

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)

Parâmetros

desiredStatus
ServiceControllerStatus

O status a ser aguardado.The status to wait for.

timeout
TimeSpan

Um objeto TimeSpan que especifica a quantidade de tempo de espera para o serviço atingir o status especificado.A TimeSpan object specifying the amount of time to wait for the service to reach the specified status.

Exceções

O parâmetro desiredStatus não é um dos valores definidos na enumeração ServiceControllerStatus.The desiredStatus parameter is not any of the values defined in the ServiceControllerStatus enumeration.

O valor especificado para o parâmetro timeout expira.The value specified for the timeout parameter expires.

Comentários

Use WaitForStatus para suspender o processamento de um aplicativo até que o serviço tenha atingido o status necessário.Use WaitForStatus to suspend an application's processing until the service has reached the required status.

Observação

O WaitForStatus método aguarda aproximadamente 250 milissegundos entre cada verificação de status.The WaitForStatus method waits approximately 250 milliseconds between each status check. WaitForStatus Não é possível detectar o caso do serviço observado, alterando para o desiredStatus e, imediatamente, para outro status nesse intervalo.WaitForStatus cannot detect the case of the observed service changing to the desiredStatus and then immediately to another status in that interval.

Confira também

Aplica-se a