Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un blocco della messaggistica timer è un source_block a destinazione singola in grado di inviare un messaggio alla sua destinazione dopo che è trascorso un determinato periodo di tempo oppure ad intervalli specifici.
Sintassi
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Parametri
T
Tipo di payload dei messaggi di output di questo blocco.
Membri
Costruttori pubblici
| Nome | Descrizione |
|---|---|
| temporizzatore | Sovraccarico. Costruisce un timer blocco di messaggistica che genererà un determinato messaggio dopo un intervallo specificato. |
| ~timer Distruttore | Elimina un timer blocco di messaggistica. |
Metodi pubblici
| Nome | Descrizione |
|---|---|
| pause | Arresta il blocco di messaggistica timer. Se si tratta di un blocco di messaggistica ripetuto timer , può essere riavviato con una chiamata successiva start() . Per i timer non ripetuti, questo ha lo stesso effetto di una stop chiamata. |
| start | Avvia il timer blocco di messaggistica. Numero specificato di millisecondi dopo la chiamata, il valore specificato verrà propagato a valle come .message |
| ferma | Ferma il timer blocco dei messaggi. |
Metodi protetti
| Nome | Descrizione |
|---|---|
| accetta_messaggio | Accetta un messaggio offerto da questo timer blocco di messaggistica, trasferendo la proprietà al chiamante. |
| consume_message | Utilizza un messaggio offerto in precedenza da timer e riservato dalla destinazione, trasferendo la proprietà a chi esegue la chiamata. |
| link_target_notification | Callback che notifica che un nuovo target è stato collegato a questo blocco di messaggistica timer. |
| propaga_a_qualsiasi_destinazione | Tenta di inviare il messaggio prodotto dal blocco timer a tutti i target collegati. |
| release_message | Rilascia una precedente prenotazione di messaggi. (Sovrascrive source_block::release_message.) |
| messaggio_di_riserva | Riserva un messaggio offerto in precedenza da questo timer blocco di messaggistica. Esegue l'operazione di override di source_block::reserve_message. |
| resume_propagation | Riprende la propagazione dopo il rilascio di una prenotazione. (Oltrepassa source_block::resume_propagation.) |
Osservazioni:
Per altre informazioni, vedere Blocchi di messaggi asincroni.
Gerarchia di ereditarietà
timer
Requisiti
Intestazione: agents.h
Spazio dei nomi: Concurrency
accetta_messaggio
Accetta un messaggio offerto da questo timer blocco di messaggistica, trasferendo la proprietà al chiamante.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parametri
_MsgId
L'oggetto runtime_object_identity dell'offerta message.
Valore restituito
Puntatore all'oggetto message di cui il chiamante ha ora la proprietà.
consume_message
Utilizza un messaggio offerto in precedenza da timer e riservato dalla destinazione, trasferendo la proprietà a chi esegue la chiamata.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parametri
_MsgId
Il runtime_object_identity dell'oggetto message che viene consumato.
Valore restituito
Puntatore all'oggetto message di cui il chiamante ha ora la proprietà.
Osservazioni:
Simile a accept, ma è sempre preceduto da una chiamata a reserve.
notifica_destinazione_link
Callback che notifica che un nuovo target è stato collegato a questo blocco di messaggistica timer.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parametri
_PTarget
Puntatore alla destinazione appena collegata.
pausa
Ferma il timer blocco dei messaggi. Se si tratta di un blocco di messaggistica ripetuto timer , può essere riavviato con una chiamata successiva start() . Per i timer non ripetuti, questo ha lo stesso effetto di una stop chiamata.
void pause();
propagate_to_any_targets
Tenta di inviare il messaggio prodotto dal blocco timer a tutti i target collegati.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
messaggio_di_rilascio
Rilascia una precedente prenotazione di messaggi.
virtual void release_message(runtime_object_identity _MsgId);
Parametri
_MsgId
runtime_object_identity dell'oggetto message che viene rilasciato.
messaggio_di_riserva
Riserva un messaggio offerto in precedenza da questo timer blocco di messaggistica.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parametri
_MsgId
Elemento runtime_object_identity dell'oggetto message riservato.
Valore restituito
true se il messaggio è stato riservato correttamente, false in caso contrario.
Osservazioni:
Dopo che reserve è stato chiamato, se restituisce true, devono essere chiamati consume o release per prendere o rilasciare la proprietà del messaggio.
resume_propagation
Riprende la propagazione dopo il rilascio di una prenotazione.
virtual void resume_propagation();
Avvio
Avvia il timer blocco di messaggistica. Numero specificato di millisecondi dopo la chiamata, il valore specificato verrà propagato a valle come .message
void start();
fermare
Ferma il timer blocco dei messaggi.
void stop();
temporizzatore
Costruisce un timer blocco di messaggistica che genererà un determinato messaggio dopo un intervallo specificato.
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);
Parametri
_Ms
Numero di millisecondi che devono trascorrere dopo l'avvio della chiamata per propagare il messaggio specificato a valle.
value
Valore che verrà propagato a valle al termine del timer.
_PTarget
Destinazione in cui il timer propaga il messaggio.
_Ripetizione
Se true, indica che il timer verrà attivato periodicamente ogni _Ms millisecondo.
_Pianificazione
L'oggetto Scheduler in cui è pianificata l'attività di propagazione per il timer blocco di messaggistica.
_GruppoDiProgrammazione
Oggetto ScheduleGroup all'interno del quale è pianificata l'attività di propagazione per il blocco della messaggistica timer . L'oggetto Scheduler utilizzato è implicito nel gruppo di pianificazione.
Osservazioni:
Se non si specificano i parametri _Scheduler o _ScheduleGroup , il runtime usa l'utilità di pianificazione predefinita.
~timer
Elimina un timer blocco di messaggistica.
~timer();