ServiceBase.OnPause Metoda

Definicja

Po zaimplementowaniu w klasie pochodnej polecenie wstrzymania jest wysyłane do usługi przez menedżera kontroli usług (SCM). Określa akcje do wykonania, gdy usługa zostanie wstrzymana.

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

Uwagi

Służy OnPause do określania przetwarzania, które ma miejsce, gdy usługa odbiera polecenie Wstrzymanie. OnPause jest oczekiwana przesłonięć, CanPauseAndContinue gdy właściwość ma wartość true.

Po kontynuowaniu wstrzymanej usługi (za pośrednictwem konsoli usług lub programowo) OnContinue przetwarzanie jest uruchamiane, a usługa ponownie staje się aktywna.

Polecenie Wstrzymaj umożliwia aplikacji reagowanie tylko na określone zdarzenie. OnPause nic nie robi z usługą, której nie definiujesz.

Wysyłanie żądania wstrzymania do usługi może zaoszczędzić zasoby systemowe, ponieważ wstrzymywanie nie wymaga zwolnienia wszystkich zasobów systemowych. Jeśli na przykład wątki zostały otwarte przez proces, wstrzymanie usługi zamiast jej zatrzymywania może pozwolić wątkom pozostać otwartymi, co pozwala na ponowne przydzielanie ich po kontynuowaniu usługi. Jeśli zdefiniujesz opcję Wstrzymaj, aby zwolnić wszystkie zasoby systemowe, zachowuje się jak polecenie Zatrzymania.

Ustaw CanPauseAndContinue wartość truena , i przesłoń OnPause i OnContinue , aby określić przetwarzanie, które powinno nastąpić po przekazaniu żądania wstrzymania lub kontynuowania do usługi przez program SCM. OnContinue należy zaimplementować w celu cofnięcia przetwarzania w programie OnPause.

Jeśli CanPauseAndContinue parametr ma falsewartość , program SCM nie przekaże żądań Wstrzymanie lub Kontynuuj do usługi, więc OnPause metody i OnContinue nie będą wywoływane nawet w przypadku zaimplementowania. W narzędziu SCM kontrolki Pause i Continue są wyłączone, gdy CanPauseAndContinue parametr ma wartość false.

Dotyczy

Zobacz też