ServiceController.WaitForStatus Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aguarda o serviço atingir o status especificado.
Sobrecargas
WaitForStatus(ServiceControllerStatus) |
Aguarda infinitamente o serviço atingir o status especificado. |
WaitForStatus(ServiceControllerStatus, TimeSpan) |
Espera o serviço atingir o status especificado ou o tempo limite especificado expirar. |
WaitForStatus(ServiceControllerStatus)
Aguarda infinitamente o serviço atingir o status especificado.
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.
Exceções
O parâmetro desiredStatus
não é um dos valores definidos na enumeração ServiceControllerStatus.
Exemplos
O exemplo a seguir usa a ServiceController classe para verificar se o serviço Alerter foi interrompido. 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.
// 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 atinja o status necessário.
Observação
O WaitForStatus método aguarda aproximadamente 250 milissegundos entre cada verificação de status. WaitForStatus não é possível detectar o caso do serviço observado mudando para o desiredStatus
e, em seguida, imediatamente para outro status nesse intervalo.
Confira também
Aplica-se a
WaitForStatus(ServiceControllerStatus, TimeSpan)
Espera o serviço atingir o status especificado ou o tempo limite especificado expirar.
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.
- timeout
- TimeSpan
Um objeto TimeSpan que especifica a quantidade de tempo de espera para o serviço atingir o status especificado.
Exceções
O parâmetro desiredStatus
não é um dos valores definidos na enumeração ServiceControllerStatus.
O valor especificado para o parâmetro timeout
expira.
Comentários
Use WaitForStatus para suspender o processamento de um aplicativo até que o serviço atinja o status necessário.
Observação
O WaitForStatus método aguarda aproximadamente 250 milissegundos entre cada verificação de status. WaitForStatus não é possível detectar o caso do serviço observado mudando para o desiredStatus
e, em seguida, imediatamente para outro status nesse intervalo.