Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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é messageoblasti 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
acceptPodobá 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é messageoblasti 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();