ServiceBase.OnPause Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Když je implementovaná v odvozené třídě, spustí se při odeslání příkazu Pause do služby správcem řízení služeb (SCM). Určuje akce, které se mají provést při pozastavení služby.
protected:
virtual void OnPause();
protected virtual void OnPause ();
abstract member OnPause : unit -> unit
override this.OnPause : unit -> unit
Protected Overridable Sub OnPause ()
Poznámky
Slouží OnPause k určení zpracování, ke kterému dojde, když služba obdrží příkaz Pozastavit. OnPause je očekáváno, že se přepíše, pokud CanPauseAndContinue je true
vlastnost .
Když budete pokračovat v pozastavené službě (prostřednictvím konzoly Služby nebo prostřednictvím kódu programu), OnContinue zpracování se spustí a služba se znovu aktivuje.
Příkaz Pozastavit umožňuje aplikaci reagovat pouze na konkrétní událost. OnPause nedělá nic službě, kterou nemáte definovat, aby to udělala.
Odeslání žádosti o pozastavení službě může šetřit systémové prostředky, protože pozastavení nemusí uvolnit všechny systémové prostředky. Pokud například proces otevřel vlákna, pozastavte službu a nezastavíte ji, aby vlákna zůstala otevřená, a obviováním potřeby je při pokračování služby relokovat. Pokud definujete Pozastavení pro uvolnění všech systémových prostředků, chová se jako příkaz Stop.
Nastavte CanPauseAndContinue na true
hodnotu a přepište OnPause a OnContinue určete zpracování, ke kterému by mělo dojít, když SCM předá žádost o pozastavení nebo pokračování vaší službě. OnContinue musí být implementováno, aby bylo možné vrátit zpět zpracování v OnPause.
Pokud CanPauseAndContinue ano false
, SCM nepředá žádosti o pozastavení nebo pokračování do služby, takže OnPause metody OnContinue se nebudou volat ani v případě implementace. V SCM Pause
jsou ovládací prvky zakázány Continue
, pokud CanPauseAndContinue je false
.