Třída timer
timer
Blok zasílání zpráv je cílsource_block
, který umožňuje odeslat zprávu do cíle po uplynutí zadaného časového období nebo v určitých intervalech.
Syntaxe
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Parametry
T
Typ datové části výstupních zpráv tohoto bloku.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
časovač | Přetíženo. timer Vytvoří blok zasílání zpráv, který po zadaném intervalu aktivuje danou zprávu. |
~časovač – destruktor | timer Zničí blok zasílání zpráv. |
Veřejné metody
Název | Popis |
---|---|
pauza | timer Zastaví blok zasílání zpráv. Pokud se jedná o opakující timer se blok zasílání zpráv, můžete ho restartovat s následným start() voláním. U neopakujících časovačů to má stejný účinek jako stop volání. |
start | timer Spustí blok zasílání zpráv. Zadaný počet milisekund po tomto zavolání, zadaná hodnota se rozšíří v podřízené message oblasti jako . |
Stop | timer Zastaví blok zasílání zpráv. |
Chráněné metody
Název | Popis |
---|---|
accept_message | Přijme zprávu, kterou tento timer blok zasílání zpráv nabízí, a přenese vlastnictví volajícímu. |
consume_message | Využívá dříve nabízenou timer zprávu a vyhrazenou cílem a převádí vlastnictví volajícímu. |
link_target_notification | Zpětné volání, které upozorní, že byl nový cíl propojen s tímto timer blokem zasílání zpráv. |
propagate_to_any_targets | Snaží se nabídnout zprávu vytvořenou timer blokem všem propojeným cílům. |
release_message | Uvolní předchozí rezervaci zpráv. (Přepsání source_block::release_message.) |
reserve_message | Zarezervuje dříve nabízenou zprávu v tomto timer bloku zasílání zpráv. (Přepsání source_block::reserve_message.) |
resume_propagation | Po vydání rezervace se obnoví šíření. (Přepsání source_block::resume_propagation.) |
Poznámky
Další informace naleznete v tématu Asynchronní bloky zpráv.
Hierarchie dědičnosti
timer
Požadavky
Hlavička: agents.h
Obor názvů: souběžnost
accept_message
Přijme zprávu, kterou tento timer
blok zasílání zpráv nabízí, a přenese vlastnictví volajícímu.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parametry
_MsgId
message
Nabízený runtime_object_identity
objekt.
Návratová hodnota
Ukazatel na message
objekt, ke kterému má volající nyní vlastnictví.
consume_message
Využívá dříve nabízenou timer
zprávu a vyhrazenou cílem a převádí vlastnictví volajícímu.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Objekt runtime_object_identity
, který message
se spotřebovává.
Návratová hodnota
Ukazatel na message
objekt, ke kterému má volající nyní vlastnictví.
Poznámky
accept
Podobá se , ale vždy předchází volání reserve
.
link_target_notification
Zpětné volání, které upozorní, že byl nový cíl propojen s tímto timer
blokem zasílání zpráv.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parametry
_PTarget
Ukazatel na nově propojený cíl.
Pozastavit
timer
Zastaví blok zasílání zpráv. Pokud se jedná o opakující timer
se blok zasílání zpráv, můžete ho restartovat s následným start()
voláním. U neopakujících časovačů to má stejný účinek jako stop
volání.
void pause();
propagate_to_any_targets
Snaží se nabídnout zprávu vytvořenou timer
blokem všem propojeným cílům.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Uvolní předchozí rezervaci zpráv.
virtual void release_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Uvolnění runtime_object_identity
objektu message
.
reserve_message
Zarezervuje dříve nabízenou zprávu v tomto timer
bloku zasílání zpráv.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Objekt runtime_object_identity
, který message
je rezervován.
Návratová hodnota
true
pokud byla zpráva úspěšně rezervována, false
jinak.
Poznámky
Po reserve
zavolání, pokud se vrátí true
, buď consume
nebo release
musí být volána k převzetí nebo uvolnění vlastnictví zprávy.
resume_propagation
Po vydání rezervace se obnoví šíření.
virtual void resume_propagation();
start
timer
Spustí blok zasílání zpráv. Zadaný počet milisekund po tomto zavolání, zadaná hodnota se rozšíří v podřízené message
oblasti jako .
void start();
Zastavit
timer
Zastaví blok zasílání zpráv.
void stop();
časovač
timer
Vytvoří blok zasílání zpráv, který po zadaném intervalu aktivuje danou zprávu.
timer(
unsigned int _Ms,
T const& value,
ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
timer(
Scheduler& _Scheduler,
unsigned int _Ms,
T const& value,
_Inout_opt_ ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
timer(
ScheduleGroup& _ScheduleGroup,
unsigned int _Ms,
T const& value,
_Inout_opt_ ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
Parametry
_Milisekunda
Počet milisekund, které musí uplynout po volání, aby se zadaná zpráva šířila do podřízené oblasti.
value
Hodnota, která se rozšíří v podřízené po uplynutí časovače.
_PTarget
Cíl, na který časovač rozšíří zprávu.
_Opakování
Pokud je hodnota true, znamená to, že časovač se bude pravidelně střílet každých _Ms
milisekund.
_Plánovač
Objekt Scheduler
, ve kterém je naplánována úloha šíření bloku timer
zasílání zpráv je naplánována.
_ScheduleGroup
Objekt ScheduleGroup
, ve kterém je naplánována úloha šíření bloku timer
zasílání zpráv. Použitý Scheduler
objekt je odvozen ze skupiny plánů.
Poznámky
Modul runtime používá výchozí plánovač, pokud nezadáte _Scheduler
parametry._ScheduleGroup
~časovač
timer
Zničí blok zasílání zpráv.
~timer();