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í.
Při implementaci v odvozené třídě se spustí 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 bude přepsána, pokud CanPauseAndContinue je truevlastnost .
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 pro službu, kterou nedefinujete, 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, pozastaví službu a nezastaví ji, může umožnit, aby vlákna zůstala otevřená, obviování nutnosti je při pokračování služby relokovat. Pokud definujete Pozastavit a uvolnit všechny systémové prostředky, chová se jako příkaz Stop.
Nastavte CanPauseAndContinue a truepřepište OnPause a OnContinue určete zpracování, které by mělo nastat, když SCM předá požadavek pozastavit nebo pokračovat do vaší služby.
OnContinue by měla být implementována, aby bylo možné vrátit zpět zpracování v OnPausesouboru .
Pokud CanPauseAndContinue ano false, SCM nepředá žádosti Pause nebo Continue do služby, takže metody a OnContinue nebudou OnPause volána ani v případě implementace. V SCM jsou ovládací prvky a Continue ovládací prvky zakázány, Pause pokud CanPauseAndContinue je false.