Share via


timerklasse

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

ISource

source_block

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.

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

Zie ook

concurrentie Namespace