timer-Klasse

Ein timer-Meldungsblock ist ein source_block mit einem einzelnen Ziel, der nach Ablauf einer bestimmten Zeitspanne oder in bestimmten Intervallen eine Meldung an sein Ziel senden kann.

Syntax

template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;

Parameter

T
Der Nutzlasttyp der Ausgabemeldungen dieses Blocks.

Member

Öffentliche Konstruktoren

Name Beschreibung
Timer Überladen. Erstellt einen timer Nachrichtenblock, der eine bestimmte Nachricht nach einem angegebenen Intervall auslösen wird.
~timer Destructor Zerstört einen timer Nachrichtenblock.

Öffentliche Methoden

Name Beschreibung
pause Beendet den timer Nachrichtenblock. Wenn es sich um einen wiederholten timer Nachrichtenblock handelt, kann er mit einem nachfolgenden start() Anruf neu gestartet werden. Bei nicht wiederholten Zeitgebern hat dies die gleiche Auswirkung wie ein stop Anruf.
start Startet den timer Nachrichtenblock. Die angegebene Anzahl von Millisekunden, nachdem dieser aufgerufen wurde, wird der angegebene Wert nachgelagert als ein message.
stop Beendet den timer Nachrichtenblock.

Geschützte Methoden

Name Beschreibung
Accept_message Akzeptiert eine Nachricht, die von diesem timer Nachrichtenblock angeboten wurde, und überträgt den Besitz an den Anrufer.
Consume_message Nutzt eine Nachricht, die timer zuvor vom Ziel angeboten und reserviert wurde, und überträgt den Besitz an den Anrufer.
link_target_notification Ein Rückruf, der benachrichtigt, dass ein neues Ziel mit diesem timer Messagingblock verknüpft wurde.
Propagate_to_any_targets Versucht, die vom timer Block erzeugte Nachricht allen verknüpften Zielen anzubieten.
Release_message Veröffentlicht eine vorherige Nachrichtenreservierung. (Überschreibt source_block::release_message.)
reserve_message Reserviert eine Nachricht, die zuvor von diesem timer Nachrichtenblock angeboten wurde. (Überschreibt source_block::reserve_message.)
Resume_propagation Setzt die Verteilung fort, nachdem eine Reservierung freigegeben wurde. (Überschreibt source_block::resume_propagation.)

Hinweise

Weitere Informationen finden Sie unter "Asynchrone Nachrichtenblöcke".

Vererbungshierarchie

Isource

Source_block

timer

Anforderungen

Header: agents.h

Namespace: Parallelität

Accept_message

Akzeptiert eine Nachricht, die von diesem timer Nachrichtenblock angeboten wurde, und überträgt den Besitz an den Anrufer.

virtual message<T>* accept_message(runtime_object_identity _MsgId);

Parameter

_Msgid
Das runtime_object_identity angebotene message Objekt.

Rückgabewert

Ein Zeiger auf das message Objekt, dessen Besitzer der Aufrufer jetzt ist.

Consume_message

Nutzt eine Nachricht, die timer zuvor vom Ziel angeboten und reserviert wurde, und überträgt den Besitz an den Anrufer.

virtual message<T>* consume_message(runtime_object_identity _MsgId);

Parameter

_Msgid
Das runtime_object_identity Objekt, das message verbraucht wird.

Rückgabewert

Ein Zeiger auf das message Objekt, dessen Besitzer der Aufrufer jetzt ist.

Hinweise

Ähnlich wie accept, aber wird immer ein Aufruf von reserve.

Ein Rückruf, der benachrichtigt, dass ein neues Ziel mit diesem timer Messagingblock verknüpft wurde.

virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);

Parameter

_PTarget
Ein Zeiger auf das neu verknüpfte Ziel.

pause

Beendet den timer Nachrichtenblock. Wenn es sich um einen wiederholten timer Nachrichtenblock handelt, kann er mit einem nachfolgenden start() Anruf neu gestartet werden. Bei nicht wiederholten Zeitgebern hat dies die gleiche Auswirkung wie ein stop Anruf.

void pause();

Propagate_to_any_targets

Versucht, die vom timer Block erzeugte Nachricht allen verknüpften Zielen anzubieten.

virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);

Release_message

Veröffentlicht eine vorherige Nachrichtenreservierung.

virtual void release_message(runtime_object_identity _MsgId);

Parameter

_Msgid
Das runtime_object_identity Objekt, das message freigegeben wird.

reserve_message

Reserviert eine Nachricht, die zuvor von diesem timer Nachrichtenblock angeboten wurde.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parameter

_Msgid
Das runtime_object_identity Objekt, das message reserviert wird.

Rückgabewert

true wenn die Nachricht erfolgreich reserviert wurde, false andernfalls.

Hinweise

Nach reserve dem Aufruf, wenn er zurückgegeben truewird, oder release muss aufgerufen werden, consume um entweder den Besitz der Nachricht zu übernehmen oder freizugeben.

Resume_propagation

Setzt die Verteilung fort, nachdem eine Reservierung freigegeben wurde.

virtual void resume_propagation();

start

Startet den timer Nachrichtenblock. Die angegebene Anzahl von Millisekunden, nachdem dieser aufgerufen wurde, wird der angegebene Wert nachgelagert als ein message.

void start();

Stopp

Beendet den timer Nachrichtenblock.

void stop();

timer

Erstellt einen timer Nachrichtenblock, der eine bestimmte Nachricht nach einem angegebenen Intervall auslösen wird.

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);

Parameter

_Ms
Die Anzahl der Millisekunden, die nach dem Start des Aufrufs für die angegebene Nachricht nachgeschaltet werden müssen.

value
Der Wert, der nach unten verteilt wird, wenn der Timer verstrichen ist.

_PTarget
Das Ziel, an das der Timer seine Nachricht weitergibt.

_Wiederholen
Wenn true, gibt an, dass der Timer in regelmäßigen Abständen alle _Ms Millisekunden ausgelöst wird.

_Scheduler
Das Scheduler Objekt, in dem die Verteilungsaufgabe für den timer Nachrichtenblock geplant ist, wird geplant.

_Schedulegroup
Das ScheduleGroup -Objekt, in dem die Weiterleitungsaufgabe für den timer -Meldungsblock geplant ist. Das verwendete Scheduler -Objekt wird von der Planungsgruppe impliziert.

Hinweise

Die Runtime verwendet das Standardplanungsprogramm, wenn Sie den _Scheduler -Parameter oder den _ScheduleGroup -Parameter nicht angeben.

~Timer

Zerstört einen timer Nachrichtenblock.

~timer();

Siehe auch

Concurrency-Namespace