ServiceBase.OnPause メソッド


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

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


OnPauseサービスが Pause コマンドを受信したときに発生する処理を指定するために使用します。Use OnPause to specify the processing that occurs when the service receives a Pause command. OnPause プロパティがの場合、はオーバーライドされることが想定され CanPauseAndContinue true ます。OnPause is expected to be overridden when the CanPauseAndContinue property is true.

(サービスコンソールまたはプログラムによって) 一時停止しているサービスを続行すると、 OnContinue 処理が実行され、サービスが再びアクティブになります。When you continue a paused service (either through the Services console or programmatically), the OnContinue processing is run, and the service becomes active again.

Pause コマンドを使用すると、アプリケーションは特定のイベントにのみ応答できます。The Pause command only allows your application to react to a specific event. OnPause 実行するように定義していないサービスに対しては何も行いません。OnPause does nothing to the service that you do not define it to do.

一時停止要求をサービスに送信すると、すべてのシステムリソースを解放する必要がなくなるため、システムリソースを節約できます。Sending a Pause request to the service can conserve system resources because Pause need not release all system resources. たとえば、プロセスによってスレッドが開かれている場合、停止するのではなくサービスを一時停止すると、スレッドを開いたままにすることができます。サービスが続行されるときに再割り当てする必要が習得ます。For example, if threads have been opened by the process, pausing a service rather than stopping it can allow the threads to remain open, obviating the need to reallocate them when the service continues. すべてのシステムリソースを解放するために Pause を定義すると、Stop コマンドのように動作します。If you define Pause to release all system resources, it behaves like a Stop command.

CanPauseAndContinueをに設定 true し、およびをオーバーライドして、 OnPause OnContinue SCM が Pause または Continue 要求をサービスに渡すときに発生する処理を指定します。Set CanPauseAndContinue to true, and override OnPause and OnContinue to specify the processing that should occur when the SCM passes a Pause or Continue request to your service. OnContinue で処理を元に戻すには、を実装する必要があり OnPause ます。OnContinue should be implemented to undo the processing in OnPause.

がの場合 CanPauseAndContinue false 、SCM はサービスに対して Pause または Continue 要求を渡しません。そのため、実装され OnPause OnContinue ている場合でも、メソッドとメソッドは呼び出されません。If CanPauseAndContinue is false, the SCM will not pass Pause or Continue requests to the service, so the OnPause and OnContinue methods will not be called even if implemented. SCM で Pause は、およびコントロールは、がの場合は無効に Continue なり CanPauseAndContinue false ます。In the SCM, the Pause and Continue controls are disabled when CanPauseAndContinue is false.