ServiceController.WaitForStatus Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Waits for the service to reach the specified status.
Overloads
WaitForStatus(ServiceControllerStatus) |
Infinitely waits for the service to reach the specified status. |
WaitForStatus(ServiceControllerStatus, TimeSpan) |
Waits for the service to reach the specified status or for the specified time-out to expire. |
WaitForStatus(ServiceControllerStatus)
- Source:
- ServiceController.cs
- Source:
- ServiceController.cs
- Source:
- ServiceController.cs
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)
Parameters
- desiredStatus
- ServiceControllerStatus
The status to wait for.
Exceptions
The desiredStatus
parameter is not any of the values defined in the ServiceControllerStatus enumeration.
Examples
The following example uses the ServiceController class to check whether the Alerter service is stopped. 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);
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
Remarks
Use WaitForStatus to suspend an application's processing until the service has reached the required status.
Note
The WaitForStatus method waits approximately 250 milliseconds between each status check. WaitForStatus cannot detect the case of the observed service changing to the desiredStatus
and then immediately to another status in that interval.
See also
Applies to
WaitForStatus(ServiceControllerStatus, TimeSpan)
- Source:
- ServiceController.cs
- Source:
- ServiceController.cs
- Source:
- ServiceController.cs
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)
Parameters
- desiredStatus
- ServiceControllerStatus
The status to wait for.
- timeout
- TimeSpan
A TimeSpan object specifying the amount of time to wait for the service to reach the specified status.
Exceptions
The desiredStatus
parameter is not any of the values defined in the ServiceControllerStatus enumeration.
The value specified for the timeout
parameter expires.
Remarks
Use WaitForStatus to suspend an application's processing until the service has reached the required status.
Note
The WaitForStatus method waits approximately 250 milliseconds between each status check. WaitForStatus cannot detect the case of the observed service changing to the desiredStatus
and then immediately to another status in that interval.