Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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.
notificación_de_destino_de_enlace
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();