Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Mitglieder
Ö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 wiederholenden Timern hat dies die gleiche Auswirkung wie ein stop Aufruf. |
| start | Startet den timer Nachrichtenblock. Die angegebene Anzahl von Millisekunden, nachdem diese Methode aufgerufen wurde, wird der angegebene Wert als ein message nachgelagert propagiert. |
| stop | Beendet den timer Nachrichtenblock. |
Geschützte Methoden
| Name | Beschreibung |
|---|---|
| nachricht_akzeptieren | Akzeptiert eine Nachricht, die von diesem timer Nachrichtenblock angeboten wurde, und überträgt den Besitz an den Anrufer. |
| consume_message | Nutzt eine Nachricht, die zuvor vom timer angeboten und vom Ziel 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. |
| auf_beliebige_Ziele_übertragen | 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
timer
Anforderungen
Header: agents.h
Namespace: Parallelität
Nachricht_annehmen
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.
Nachricht_verarbeiten
Nutzt eine Nachricht, die zuvor vom timer angeboten und vom Ziel 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, wird jedoch immer von einem Aufruf von reserve gefolgt.
link_target_notification
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 wiederholenden Timern hat dies die gleiche Auswirkung wie ein stop Aufruf.
void pause();
an beliebige Ziele weiterleiten
Versucht, die vom timer Block erzeugte Nachricht allen verknüpften Zielen anzubieten.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
Freigabebenachrichtigung
Veröffentlicht eine vorherige Nachrichtenreservierung.
virtual void release_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Das runtime_object_identity des message Objekts, das freigegeben wird.
Reservierungsnachricht
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
Nachdem reserve aufgerufen wurde, wenn true zurückgegeben wird, müssen entweder consume oder release aufgerufen werden, um den Besitz der Nachricht entweder 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 diese Methode aufgerufen wurde, wird der angegebene Wert als ein message nachgelagert propagiert.
void start();
Stopp
Beendet den timer Nachrichtenblock.
void stop();
Zeitschaltuhr
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
_Frau
Die Anzahl der Millisekunden, die nach dem Anruf vergehen müssen, bevor die angegebene Nachricht weitergeleitet wird.
value
Der Wert, der weitergeleitet wird, wenn der Timer abläuft.
_PTarget
Das Ziel, an das der Timer seine Nachricht weitergibt.
_Wiederholung
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 wird, ist terminiert.
_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();