ServiceBase.OnPause Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ść true
na , 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 false
wartość , 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
.