Compartir a través de


temporizador (clase)

Un bloque de mensajería timer es un bloque source_block con destino único, capaz de enviar un mensaje a su destino cuando un período de tiempo especificado ha transcurrido o en intervalos concretos.

Sintaxis

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

Parámetros

T
El tipo de carga de los mensajes de salida de este bloque.

Miembros

Constructores públicos

Nombre Descripción
timer Sobrecargado Construye un bloque de mensajería timer que activará un mensaje determinado después de un intervalo especificado.
~timer Destructor Destruye un bloque de mensajería timer.

Métodos públicos

Nombre Descripción
pause Detiene el bloque de mensajes timer. Si se trata de un bloque de mensajería repetido timer, puede reiniciarse con una llamada posterior a start(). En el caso de los temporizadores no repetidos, esto tiene el mismo efecto que una llamada a stop.
start Inicia el bloque de mensajería timer. Tras el número especificado de milisegundos después de que se llame a esto, el valor especificado se propagará hacia abajo como message.
stop Detiene el bloque de mensajería timer.

Métodos protegidos

Nombre Descripción
aceptar_mensaje Acepta un mensaje ofrecido por este bloque de mensajería timer y transfiere la propiedad al autor de la llamada.
consume_message Consume un mensaje ofrecido previamente por el bloque de mensajería timer y reservado por el destino, y transfiere la propiedad al autor de la llamada.
link_target_notification Callback que notifica que un nuevo destino ha sido vinculado a este bloque de mensajería timer.
propagar_a_cualquier_objetivo Intenta ofrecer el mensaje generado por el bloque timer a todos los destinos vinculados.
release_message Libera una reserva previa de mensaje. (Invalida source_block::release_message).
mensaje_de_reserva Reserva un mensaje ofrecido anteriormente por este bloque de mensajería timer. (Invalida source_block::reserve_message).
resume_propagation Reanuda la propagación después de que se haya liberado una reserva. (Invalida source_block::resume_propagation).

Comentarios

Para obtener más información, consulte Bloques de mensajes asincrónicos.

Jerarquía de herencia

ISource

source_block

timer

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

mensaje_de_aceptación

Acepta un mensaje ofrecido por este bloque de mensajería timer y transfiere la propiedad al autor de la llamada.

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

Parámetros

_MsgId
El valor runtime_object_identity del objeto message ofrecido.

Valor devuelto

Puntero al objeto message del que el autor de la llamada tiene ahora la propiedad.

consumir_mensaje

Consume un mensaje ofrecido previamente por el bloque de mensajería timer y reservado por el destino, y transfiere la propiedad al autor de la llamada.

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

Parámetros

_MsgId
Valor runtime_object_identity del objeto message que se consumirá.

Valor devuelto

Puntero al objeto message del que el autor de la llamada tiene ahora la propiedad.

Comentarios

Es similar a accept, pero siempre va precedido de una llamada a reserve.

Callback que notifica que un nuevo destino ha sido vinculado a este bloque de mensajería timer.

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

Parámetros

_PTarget
Puntero al objetivo recién vinculado.

pausa

Detiene el bloque de mensajería timer. Si se trata de un bloque de mensajería repetido timer, puede reiniciarse con una llamada posterior a start(). En el caso de los temporizadores no repetidos, esto tiene el mismo efecto que una llamada a stop.

void pause();

propagar_a_cualquier_destino

Intenta ofrecer el mensaje generado por el bloque timer a todos los destinos vinculados.

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

mensaje_de_lanzamiento

Libera una reserva previa de mensaje.

virtual void release_message(runtime_object_identity _MsgId);

Parámetros

_MsgId
El valor runtime_object_identity del objeto message que se libera.

reserve_message

Reserva un mensaje ofrecido anteriormente por este bloque de mensajería timer.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parámetros

_MsgId
El runtime_object_identity del objeto message que se está reservando.

Valor devuelto

true si se ha reservado correctamente el mensaje; de lo contrario, false.

Comentarios

Después de llamar a reserve, si devuelve true, se debe llamar a consume o release para aceptar o liberar la propiedad del mensaje.

resume_propagation

Reanuda la propagación después de que se haya liberado una reserva.

virtual void resume_propagation();

inicio

Inicia el bloque de mensajería timer. Tras el número especificado de milisegundos después de que se llame a esto, el valor especificado se propagará hacia abajo como message.

void start();

stop

Detiene el bloque de mensajería timer.

void stop();

temporizador

Construye un bloque de mensajería timer que activará un mensaje determinado después de un intervalo especificado.

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

Parámetros

_Ms
El número de milisegundos que deben transcurrir después de que se inicie la llamada para que el mensaje especificado se propague de bajada.

value
El valor que se propagará hacia abajo cuando se agote el temporizador.

_PTarget
El destino al que el temporizador propagará su mensaje.

_Repetir
Si es true, indica que el temporizador se activará periódicamente cada _Ms milisegundos.

_Scheduler
El objeto Scheduler en el que se programa la tarea de propagación para el bloque de mensajería timer está programado.

_ScheduleGroup
El objeto ScheduleGroup dentro del que se programa la tarea de propagación para el bloque de mensajería timer . El objeto Scheduler utilizado está implícito en el grupo de tareas.

Comentarios

El runtime usa el programador predeterminado si no se especifican los parámetros _Scheduler o _ScheduleGroup .

~temporizador

Destruye un bloque de mensajería timer.

~timer();

Consulte también

espacio de nombres de concurrencia