ServiceBase.OnStop ServiceBase.OnStop ServiceBase.OnStop ServiceBase.OnStop Method


派生クラスに実装されると、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 ()


サービスOnStopが Stop コマンドを受信したときに発生する処理を指定するために使用します。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. CanStop OnStopの場合、Stop コマンドがサービスに渡され、メソッドが定義されている場合は呼び出されます。 trueIf 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.