Partager via


Classe timer

Un bloc de messagerie timer est un source_block à cible unique, capable d'envoyer un message à sa cible après un délai spécifié ou à intervalles spécifiques.

Syntaxe

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

Paramètres

T
Type de charge utile des messages de sortie de ce bloc.

Membres

Constructeurs publics

Nom Description
timer Surcharge. Construit un timer bloc de messagerie qui déclenche un message donné après un intervalle spécifié.
~ Destructeur du minuteur Détruit un timer bloc de messagerie.

Méthodes publiques

Nom Description
pause Arrête le timer bloc de messagerie. S’il s’agit d’un bloc de messagerie répétitif timer , il peut être redémarré avec un appel ultérieur start() . Pour les minuteurs non répétitifs, cela a le même effet qu’un stop appel.
start Démarre le timer bloc de messagerie. Le nombre spécifié de millisecondes après cet appel, la valeur spécifiée est propagée en aval en tant que message.
stop Arrête le timer bloc de messagerie.

Méthodes protégées

Nom Description
accept_message Accepte un message proposé par ce timer bloc de messagerie, en transférant la propriété à l’appelant.
consume_message Consomme un message précédemment proposé par la timer cible et réservé par la cible, en transférant la propriété à l’appelant.
link_target_notification Rappel qui informe qu’une nouvelle cible a été liée à ce timer bloc de messagerie.
propagate_to_any_targets Tente d’offrir le message généré par le timer bloc à toutes les cibles liées.
release_message Libère une réservation de message précédente. (Remplace source_block ::release_message.)
reserve_message Réserve un message précédemment proposé par ce timer bloc de messagerie. (Remplace source_block ::reserve_message.)
resume_propagation Reprend la propagation après la publication d’une réservation. (Remplace source_block ::resume_propagation.)

Notes

Pour plus d’informations, consultez Blocs de messages asynchrones.

Hiérarchie d'héritage

ISource

source_block

timer

Spécifications

En-tête : agents.h

Espace de noms : concurrency

accept_message

Accepte un message proposé par ce timer bloc de messagerie, en transférant la propriété à l’appelant.

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

Paramètres

_MsgId
Objet runtime_object_identity proposé message .

Valeur de retour

Pointeur vers l’objet message dont l’appelant a désormais la propriété.

consume_message

Consomme un message précédemment proposé par la timer cible et réservé par la cible, en transférant la propriété à l’appelant.

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

Paramètres

_MsgId
De runtime_object_identity l’objet message consommé.

Valeur de retour

Pointeur vers l’objet message dont l’appelant a désormais la propriété.

Notes

Similaire à accept, mais est toujours précédé d’un appel à reserve.

Rappel qui informe qu’une nouvelle cible a été liée à ce timer bloc de messagerie.

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

Paramètres

_PTarget
Pointeur vers la cible nouvellement liée.

pause

Arrête le timer bloc de messagerie. S’il s’agit d’un bloc de messagerie répétitif timer , il peut être redémarré avec un appel ultérieur start() . Pour les minuteurs non répétitifs, cela a le même effet qu’un stop appel.

void pause();

propagate_to_any_targets

Tente d’offrir le message généré par le timer bloc à toutes les cibles liées.

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

release_message

Libère une réservation de message précédente.

virtual void release_message(runtime_object_identity _MsgId);

Paramètres

_MsgId
De runtime_object_identity l’objet message libéré.

reserve_message

Réserve un message précédemment proposé par ce timer bloc de messagerie.

virtual bool reserve_message(runtime_object_identity _MsgId);

Paramètres

_MsgId
De runtime_object_identity l’objet message réservé.

Valeur de retour

true si le message a été correctement réservé, false sinon.

Notes

Une fois reserve appelé, s’il retourne true, soit release consume doit être appelé pour prendre ou libérer la propriété du message.

resume_propagation

Reprend la propagation après la publication d’une réservation.

virtual void resume_propagation();

start

Démarre le timer bloc de messagerie. Le nombre spécifié de millisecondes après cet appel, la valeur spécifiée est propagée en aval en tant que message.

void start();

stop

Arrête le timer bloc de messagerie.

void stop();

timer

Construit un timer bloc de messagerie qui déclenche un message donné après un intervalle spécifié.

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

Paramètres

_Ms
Nombre de millisecondes qui doivent s’écouler après le début de l’appel pour que le message spécifié soit propagé en aval.

valeur
Valeur qui sera propagée en aval lorsque le minuteur s’écoule.

_PTarget
Cible à laquelle le minuteur propage son message.

_Répétitif
Si la valeur est true, indique que le minuteur se déclenche régulièrement toutes les _Ms millisecondes.

_Programmateur
Objet Scheduler dans lequel la tâche de propagation du timer bloc de messagerie est planifiée.

_ScheduleGroup
Objet ScheduleGroup dans lequel la tâche de propagation du bloc de messagerie timer est planifiée. L’objet Scheduler utilisé est suggéré par le groupe de planification.

Notes

Le runtime utilise le planificateur par défaut si vous ne spécifiez pas les paramètres _Scheduler ou _ScheduleGroup .

~minuteur

Détruit un timer bloc de messagerie.

~timer();

Voir aussi

accès concurrentiel Namespace