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 | Con overload. Costruisce un timer blocco di messaggistica che genererà un determinato messaggio dopo un intervallo specificato. |
| Distruttore ~timer | Elimina un timer blocco di messaggistica. |
Metodi pubblici
| Nome | Descrizione |
|---|---|
| pause | Arresta il timer blocco di messaggistica. 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 |
| stop | Arresta il timer blocco di messaggistica. |
Metodi protetti
| Nome | Descrizione |
|---|---|
| accept_message | 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à al chiamante. |
| link_target_notification | Callback che notifica che una nuova destinazione è stata collegata a questo timer blocco di messaggistica. |
| propagate_to_any_targets | Tenta di offrire il messaggio generato dal timer blocco a tutte le destinazioni collegate. |
| release_message | Rilascia una prenotazione di messaggi precedente. (Esegue l'override di source_block::release_message. |
| reserve_message | Riserva un messaggio offerto in precedenza da questo timer blocco di messaggistica. Esegue l'override di source_block::reserve_message. |
| resume_propagation | Riprende la propagazione dopo il rilascio di una prenotazione. (Esegue l'override di 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
accept_message
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
Oggetto runtime_object_identity dell'oggetto offerto 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à al chiamante.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parametri
_MsgId
Oggetto runtime_object_identity dell'oggetto message utilizzato.
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.
link_target_notification
Callback che notifica che una nuova destinazione è stata collegata a questo timer blocco di messaggistica.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parametri
_PTarget
Puntatore alla destinazione appena collegata.
pause
Arresta il timer blocco di messaggistica. 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 offrire il messaggio generato dal timer blocco a tutte le destinazioni collegate.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Rilascia una prenotazione di messaggi precedente.
virtual void release_message(runtime_object_identity _MsgId);
Parametri
_MsgId
Oggetto runtime_object_identity dell'oggetto message da rilasciare.
reserve_message
Riserva un messaggio offerto in precedenza da questo timer blocco di messaggistica.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parametri
_MsgId
Oggetto runtime_object_identity dell'oggetto message riservato.
Valore restituito
true se il messaggio è stato riservato correttamente, false in caso contrario.
Osservazioni:
Dopo reserve la chiamata, se restituisce true, consume o release deve essere chiamato per accettare 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();
stop
Arresta il timer blocco di messaggistica.
void stop();
timer
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.
_Ripetente
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.
_ScheduleGroup
Oggetto ScheduleGroup all'interno del quale è pianificata l'attività di propagazione per il blocco della messaggistica timer . L'oggetto Scheduler usato è previsto dal gruppo di pianificazione.
Osservazioni:
Se non si specificano i parametri _Scheduler o _ScheduleGroup , il runtime usa l'utilità di pianificazione predefinita.
~temporizzatore
Elimina un timer blocco di messaggistica.
~timer();