ServiceBase.OnStop メソッド


派生クラスに実装されると、Stop コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。When implemented in a derived class, executes when a Stop command is sent to the service by the Service Control Manager (SCM). サービスが実行を停止したときに実行されるアクションを指定します。Specifies actions to take when a service stops running.

 virtual void OnStop();
protected virtual void OnStop ();
abstract member OnStop : unit -> unit
override this.OnStop : unit -> unit
Protected Overridable Sub OnStop ()


サービスが Stop コマンドを受信したときに発生する処理を指定するには、OnStop を使用します。Use OnStop to specify the processing that occurs when the service receives a Stop command.

SCM は、Stop コマンドを受信すると、CanStop の値を使用して、サービスが停止コマンドを受け入れるかどうかを確認します。When the SCM receives a Stop command, it uses the value of CanStop to verify whether the service accepts Stop commands. CanStoptrue場合は、Stop コマンドがサービスに渡され、OnStop メソッドが定義されている場合は呼び出されます。If CanStop is true, the Stop command is passed to the service, and the OnStop method is called if it is defined. サービスに OnStop が実装されていない場合、SCM は Stop コマンドを処理します。If OnStop is not implemented in the service, the SCM handles the Stop command.

CanStopfalseの場合、SCM は Stop コマンドを無視します。If CanStop is false, the SCM ignores the Stop command. サービスに渡されません。It is not passed to the service. Stop コマンドはを返し、例外をスローします。The Stop command returns and throws an exception.

OnStop は、派生クラスでオーバーライドされることが想定されています。OnStop is expected to be overridden in the derived class. サービスを有効にするには、OnStartOnStop を両方ともサービスクラスに実装する必要があります。For the service to be useful, OnStart and OnStop should both be implemented in your service class.