次の方法で共有


ServiceBase.OnPause メソッド

定義

派生クラスに実装されると、Pause コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。 サービスが一時中断したときに実行されるアクションを指定します。

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

注釈

サービスが Pause コマンドを受け取ったときに発生する処理を指定するには、 を使用 OnPause します。 OnPause は、 プロパティが の場合に CanPauseAndContinue オーバーライドされることが想定されています true

一時停止中のサービスを (サービス コンソールまたはプログラムで) OnContinue 続行すると、処理が実行され、サービスが再度アクティブになります。

Pause コマンドを使用すると、アプリケーションは特定のイベントにのみ対応できます。 OnPause は、ユーザーが定義しないサービスには何も行いません。

一時停止要求をサービスに送信すると、一時停止ですべてのシステム リソースを解放する必要がないため、システム リソースを節約できます。 たとえば、プロセスによってスレッドが開かれている場合、停止するのではなくサービスを一時停止すると、スレッドを開いたままにすることができ、サービスの継続時に再割り当てを行う必要がなくなりました。 [一時停止] を定義してすべてのシステム リソースを解放すると、Stop コマンドのように動作します。

を にtrue設定CanPauseAndContinueし、 をオーバーライドOnPauseOnContinueして、SCM が Pause または Continue 要求をサービスに渡したときに発生する処理を指定します。 OnContinue の処理 OnPauseを元に戻すには、 を実装する必要があります。

が の場合CanPauseAndContinue、SCM は Pause または Continue 要求をサービスに渡さないのでOnPause、 メソッドと OnContinue メソッドは実装されていても呼び出falseされません。 SCM では、 PauseContinue コントロールは、 が falseの場合CanPauseAndContinueに無効になります。

適用対象

こちらもご覧ください