Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Een timer berichtenblok is een enkelvoudig doel source_block dat een bericht naar het doel kan verzenden nadat een bepaalde periode is verstreken of op specifieke intervallen.
Syntaxis
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Parameterwaarden
T
Het payloadtype van de uitvoerberichten van dit blok.
Leden
Openbare constructors
| Naam | Description |
|---|---|
| Timer | Overbelast. Hiermee wordt een timer berichtenblok gemaakt dat een bepaald bericht na een opgegeven interval zal activeren. |
| ~timerdestructor | Vernietigt een timer berichtenblok. |
Openbare methoden
| Naam | Description |
|---|---|
| pause | Hiermee stopt u het timer berichtenblok. Als het een herhalend timer berichtenblok is, kan het opnieuw worden gestart met een volgende start() aanroep. Voor niet-herhalende timers heeft dit hetzelfde effect als een stop oproep. |
| start | Hiermee wordt het timer berichtenblok gestart. Het opgegeven aantal milliseconden nadat dit is aangeroepen, wordt de opgegeven waarde downstream doorgegeven als een message. |
| stop | Hiermee stopt u het timer berichtenblok. |
Beveiligde methoden
| Naam | Description |
|---|---|
| accept_message | Accepteert een bericht dat door dit timer berichtenblok is aangeboden, waardoor het eigendom wordt overgedragen aan de beller. |
| consume_message | Hiermee wordt een bericht verbruikt dat eerder is aangeboden door de timer en gereserveerd door de target, waardoor het eigendom wordt overgedragen aan de aanroeper. |
| link_doelmelding | Een callback waarmee wordt aangegeven dat een nieuw doel is gekoppeld aan dit timer berichtenblok. |
| doorgeven_aan_alle_doelen | Probeert het bericht aan te bieden dat door het timer blok wordt gegenereerd aan alle gekoppelde doelwitten. |
| release_message | Maakt een eerdere reservering van een bericht vrij. (Overschrijft source_block::release_message.) |
| reserve_message | Reserveert een bericht dat eerder door dit timer berichtenblok is aangeboden. (Overschrijft source_block::reserve_message.) |
| resume_propagation | De voortzetting wordt hervat nadat een reservering is vrijgegeven. (Overschrijft source_block::resume_propagation.) |
Opmerkingen
Zie Asynchrone berichtblokken voor meer informatie.
Overnamehiërarchie
timer
Requirements
Header: agents.h
Naamruimte: concurrentie
accepteer_bericht
Accepteert een bericht dat door dit timer berichtenblok is aangeboden, waardoor het eigendom wordt overgedragen aan de beller.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parameterwaarden
_MsgId
Het runtime_object_identity van het aangeboden message object.
Retourwaarde
Een aanwijzer naar het message object waarvan de aanroeper nu eigenaar is.
consume_message
Hiermee wordt een bericht verbruikt dat eerder is aangeboden door de timer en gereserveerd door de target, waardoor het eigendom wordt overgedragen aan de aanroeper.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parameterwaarden
_MsgId
Het runtime_object_identity van het message-object dat wordt gebruikt.
Retourwaarde
Een aanwijzer naar het message object waarvan de aanroeper nu eigenaar is.
Opmerkingen
Vergelijkbaar met accept, maar wordt altijd voorafgegaan door een aanroep naar reserve.
link_doel_melding
Een callback waarmee wordt aangegeven dat een nieuw doel is gekoppeld aan dit timer berichtenblok.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parameterwaarden
_PTarget
Een aanwijzer naar het nieuw gekoppelde doel.
pause
Hiermee stopt u het timer berichtenblok. Als het een herhalend timer berichtenblok is, kan het opnieuw worden gestart met een volgende start() aanroep. Voor niet-herhalende timers heeft dit hetzelfde effect als een stop oproep.
void pause();
propageren_naar_alle_doelen
Probeert het bericht aan te bieden dat door het timer blok wordt gegenereerd aan alle gekoppelde doelwitten.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
releasemededeling
Maakt een eerdere reservering van een bericht vrij.
virtual void release_message(runtime_object_identity _MsgId);
Parameterwaarden
_MsgId
Het runtime_object_identity object message dat wordt vrijgegeven.
reserve_message
Reserveert een bericht dat eerder door dit timer berichtenblok is aangeboden.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parameterwaarden
_MsgId
runtime_object_identity van het message object dat wordt gereserveerd.
Retourwaarde
true als het bericht succesvol is gereserveerd, false anders.
Opmerkingen
Nadat reserve is aangeroepen en true wordt geretourneerd, moet ofwel consume of release worden aangeroepen om het eigendom van het bericht over te nemen of vrij te geven.
resume_propagation
De voortzetting wordt hervat nadat een reservering is vrijgegeven.
virtual void resume_propagation();
start
Hiermee wordt het timer berichtenblok gestart. Het opgegeven aantal milliseconden nadat dit is aangeroepen, wordt de opgegeven waarde downstream doorgegeven als een message.
void start();
stop
Hiermee stopt u het timer berichtenblok.
void stop();
tijdklok
Hiermee wordt een timer berichtenblok gemaakt dat een bepaald bericht na een opgegeven interval zal activeren.
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);
Parameterwaarden
_Mevrouw
Het aantal milliseconden dat moet verstrijken nadat de aanroep is gestart voordat het opgegeven bericht verder stroomafwaarts wordt doorgegeven.
value
De waarde die downstream wordt doorgegeven wanneer de timer is verstreken.
_PTarget
Het doel waarnaar de timer het bericht doorgeeft.
_Herhalen
Als dit het geval is, geeft aan dat de timer periodiek elke _Ms milliseconde zal afgaan.
_Scheduler
Het Scheduler object, waarop de doorgiftetaak voor het timer berichtenblok is ingepland, wordt gescheduled.
_ScheduleGroup
Het ScheduleGroup-object waarin de doorgiftetaak voor het berichtblok timer is gepland. Het gebruikte Scheduler-object wordt geïmpliceerd door de planningsgroep.
Opmerkingen
De runtime gebruikt de standaardplanner als u de _Scheduler of _ScheduleGroup parameters niet opgeeft.
~Timer
Vernietigt een timer berichtenblok.
~timer();