Partilhar via


Classe do temporizador

Um timer bloco de mensagens é um alvo source_block único capaz de enviar uma mensagem ao seu destino após um período de tempo especificado ter decorrido ou em intervalos específicos.

Sintaxe

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

Parâmetros

T
O tipo de carga útil das mensagens de saída deste bloco.

Membros

Construtores Públicos

Nome Description
temporizador Sobrecarregado. Constrói um timer bloco de mensagens que irá disparar uma dada mensagem após um intervalo especificado.
~temporizador Destruidor Destrói um timer bloqueio de mensagens.

Métodos Públicos

Nome Description
pause Interrompe o bloqueador de timer mensagens. Se se tratar de um bloco de mensagens recorrente, este pode ser reiniciado com uma chamada subsequente start(). Para temporizadores não repetitivos, isto tem o mesmo efeito que uma stop chamada.
start Começa o timer bloqueio de mensagens. O número especificado de milissegundos após isto ser chamado, o valor especificado será propagado a jusante como um message.
parar Interrompe o bloqueador de timer mensagens.

Métodos Protegidos

Nome Description
accept_message Aceita uma mensagem oferecida por este timer bloco de mensagens, transferindo a propriedade para o chamador.
consume_message Consome uma mensagem anteriormente oferecida pelo timer e reservada pelo destinatário, transferindo a posse para o chamador.
link_target_notification Um callback que notifica que um novo alvo foi ligado a este timer bloco de mensagens.
propagate_to_any_targets Oferece a mensagem produzida pelo bloco timer para todos os alvos vinculados.
release_message Liberta uma reserva de mensagem prévia. (Sobrescreve source_block::release_message.)
mensagem_de_reserva Reserva uma mensagem anteriormente oferecida por este timer bloco de mensagens. (Substitui source_block::reserve_message.)
resume_propagation Retoma a propagação após a libertação de uma reserva. (Substitui source_block::resume_propagation.)

Observações

Para mais informações, consulte Blocos de Mensagens Assíncronas.

Hierarquia de herança

ISource

source_block

timer

Requerimentos

Cabeçalho: agents.h

Namespace: simultaneidade

aceitar_mensagem

Aceita uma mensagem oferecida por este timer bloco de mensagens, transferindo a propriedade para o chamador.

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

Parâmetros

_MsgId
O runtime_object_identity do objeto oferecido message .

Valor de retorno

Um apontador para o message objeto do qual o chamador agora é proprietário.

consumir_mensagem

Consome uma mensagem anteriormente oferecida pelo timer e reservada pelo alvo, transferindo a posse para o chamador.

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

Parâmetros

_MsgId
O runtime_object_identity do message objeto que está a ser consumido.

Valor de retorno

Um apontador para o message objeto do qual o chamador agora é proprietário.

Observações

Semelhante a accept, mas é sempre precedido por uma chamada para reserve.

Um callback que notifica que um novo alvo foi ligado a este timer bloco de mensagens.

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

Parâmetros

_PTarget
Um apontador para o alvo recém-ligado.

colocar em pausa

Interrompe o bloco de mensagens timer. Se se tratar de um bloco de mensagens recorrente, este pode ser reiniciado com uma chamada subsequente start(). Para temporizadores não repetitivos, isto tem o mesmo efeito que uma stop chamada.

void pause();

propagar_para_quaisquer_destinos

Oferece a mensagem produzida pelo bloco timer para todos os alvos vinculados.

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

mensagem de lançamento

Liberta uma reserva de mensagem prévia.

virtual void release_message(runtime_object_identity _MsgId);

Parâmetros

_MsgId
O runtime_object_identity do objeto message que está a ser libertado.

mensagem_de_reserva

Reserva uma mensagem anteriormente oferecida por este timer bloco de mensagens.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parâmetros

_MsgId
O runtime_object_identity do message objeto que está a ser reservado.

Valor de retorno

true se a mensagem foi reservada com sucesso, false caso contrário.

Observações

Depois reserve é chamado, se devolver true, ou consume ou release deve ser chamado para assumir ou libertar a propriedade da mensagem.

resume_propagation

Retoma a propagação após a libertação de uma reserva.

virtual void resume_propagation();

start

Começa o timer bloqueio de mensagens. O número especificado de milissegundos após isto ser chamado, o valor especificado será propagado a jusante como um message.

void start();

pare

Interrompe o bloqueador de timer mensagens.

void stop();

temporizador

Constrói um timer bloco de mensagens que irá disparar uma dada mensagem após um 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
O número de milissegundos que devem decorrer após o início da chamada para que a mensagem especificada seja propagada a jusante.

value
O valor que será propagado a jusante quando o temporizador expirar.

_PTarget
O alvo para o qual o temporizador irá propagar a sua mensagem.

_Repetindo
Se for verdade, indica que o temporizador irá disparar periodicamente a cada _Ms milissegundos.

_Scheduler
O Scheduler objeto dentro do qual a tarefa de propagação para o timer bloco de mensagens é agendada.

_ScheduleGroup
O objeto ScheduleGroup no qual a tarefa de propagação para o bloco de mensagens timer está agendada. O objeto Scheduler usado é implícito pelo grupo de agenda.

Observações

O tempo de execução usa o escalonador padrão se não especificar os parâmetros _Scheduler ou _ScheduleGroup.

~temporizador

Destrói um timer bloqueio de mensagens.

~timer();

Consulte também

concorrência Namespace