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
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
.
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 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 true
wird, 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();
stop
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
_Frau
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.
_Wiederholfunktion
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.
~Zeitschaltuhr
Zerstört einen timer
Nachrichtenblock.
~timer();