Sdílet prostřednictvím


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

Jméno 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

Jméno popis
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í.
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

Jméno 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

ISource

source_block

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.

Vrácená 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á.

Vrácená 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.

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.

Vrácená 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();

začátek

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

_Paní
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.

_S opakováním
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();

Viz také

concurrency – obor názvů