次の方法で共有


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 変わり、その間隔ですぐに別の状態に変わるケースを検出できません。

こちらもご覧ください

適用対象