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 pro zasílání zpráv s jediným cílem je schopen odeslat zprávu do svého cíle po uplynutí zadaného časového intervalu 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 | Zničí timer blok zasílání zpráv. |
Veřejné metody
| Název | Popis |
|---|---|
| pauza | Zastaví blok timer pro zasílání zpráv. Pokud se jedná o blok opakující se zasílání zpráv timer, můžete ho restartovat dalším start() voláním. U neopakujících časovačů to má stejný účinek jako stop volání. |
| start | Spustí blok zasílání zpráv timer. Po uplynutí zadaného počtu milisekund od tohoto zavolání se zadaná hodnota propaguje dále jako message. |
| Stop | Zastaví blok timer pro zasílání zpráv. |
Chráněné metody
| Název | Popis |
|---|---|
| přijmout_zprávu | Přijme zprávu, kterou tento timer blok zasílání zpráv nabízí, a přenese vlastnictví volajícímu. |
| consume_message | Spotřebovává zprávu, která byla dříve nabídnuta timer a rezervována cílem, a převádí vlastnictví na volajícího. |
| oznámení_o_cíli_odkazu | Funkce zpětného volání, která upozorní na propojení nového cíle s tímto timer blokem zasílání zpráv. |
| šířit_na_jakékoliv_cíle | 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řepisuje source_block::release_message.) |
| rezervační_zpráva | Zarezervuje dříve nabízenou zprávu v tomto timer bloku zasílání zpráv. (Přepisuje source_block::reserve_message.) |
| resume_propagation | Po uvolně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
přijmout_zprávu
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
runtime_object_identity Nabízený message objekt.
Návratová hodnota
Ukazatel na message objekt, ke kterému má volající nyní vlastnictví.
zpracovat_zprávu
Spotřebovává zprávu, která byla dříve nabídnuta timer a rezervována cílem, a převádí vlastnictví na volajícího.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parametry
_MsgId
runtime_object_identity objektu message, který je spotřebováván.
Návratová hodnota
Ukazatel na message objekt, ke kterému má volající nyní vlastnictví.
Poznámky
Podobá se accept, ale vždy mu předchází volání reserve.
upozornění_na_cíl_odkazu
Funkce zpětného volání, která upozorní na propojení nového cíle 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
Zastaví blok timer pro zasílání zpráv. Pokud se jedná o blok opakující se zasílání zpráv timer, můžete ho restartovat dalším start() voláním. U neopakujících časovačů to má stejný účinek jako stop volání.
void pause();
šířit na všechny cíle
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> *);
zpráva o vydání
Uvolní předchozí rezervaci zpráv.
virtual void release_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Uvolnění runtime_object_identity objektu message .
rezervovat_zprávu
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 message, který je rezervován pro runtime_object_identity.
Návratová hodnota
true pokud byla zpráva úspěšně rezervována, jinak false.
Poznámky
Po zavolání reserve, pokud se vrátí true, musí být buď consume nebo release zavolána, aby došlo k převzetí nebo uvolnění vlastnictví zprávy.
resume_propagation
Po uvolnění rezervace se obnoví šíření.
virtual void resume_propagation();
spustit
Spustí blok zasílání zpráv timer. Po uplynutí zadaného počtu milisekund od tohoto zavolání se zadaná hodnota propaguje dále jako message.
void start();
Zastavit
Zastaví blok timer pro 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
_Ms
Počet milisekund, které musí uplynout po volání, aby se zadaná zpráva šířila do podřízené oblasti.
value
Hodnota, která bude předána po proudu po uplynutí časovače.
_PTarget
Cíl, na který časovač rozšíří zprávu.
_Opakování
Pokud je hodnota pravda, znamená to, že časovač se bude pravidelně spouštět každých _Ms milisekund.
_Plánovač
Objekt Scheduler, ve kterém je naplánována úloha pro blok timer zasílání zpráv, je určen pro naplánování šíření.
_ScheduleGroup
Objekt ScheduleGroup , ve kterém je naplánována úloha šíření bloku timer zasílání zpráv. Použití Scheduler objektu je dané skupinou plánů.
Poznámky
Modul runtime používá výchozí plánovač, pokud nezadáte buď parametr _Scheduler nebo parametr _ScheduleGroup.
~časovač
Zničí timer blok zasílání zpráv.
~timer();