Klasa czasomierza
timer
Blok obsługi komunikatów to pojedynczy element docelowy, który może wysyłać komunikat do obiektu docelowego source_block
po upływie określonego czasu lub w określonych odstępach czasu.
Składnia
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Parametry
T
Typ ładunku komunikatów wyjściowych tego bloku.
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
minutnik | Przeciążone. Tworzy blok obsługi komunikatów timer , który będzie uruchamiał daną wiadomość po określonym interwale. |
~timer, destruktor | timer Niszczy blok obsługi komunikatów. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
pauza | timer Zatrzymuje blok obsługi komunikatów. Jeśli jest to powtarzający timer się blok obsługi komunikatów, można go ponownie uruchomić za pomocą kolejnego start() wywołania. W przypadku czasomierzy nie powtarzających się ma to taki sam efekt jak wywołanie stop . |
start | timer Uruchamia blok obsługi komunikatów. Określona liczba milisekund po wywołaniu tej metody zostanie rozpropagowana określona wartość podrzędna message jako . |
zatrzymać | timer Zatrzymuje blok obsługi komunikatów. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
accept_message | Akceptuje komunikat oferowany przez ten timer blok obsługi komunikatów, przenosząc własność na obiekt wywołujący. |
consume_message | Używa komunikatu oferowanego wcześniej przez timer obiekt docelowy i zarezerwowanego przez obiekt docelowy, przenosząc własność do obiektu wywołującego. |
link_target_notification | Wywołanie zwrotne, które powiadamia o tym, że nowy element docelowy został połączony z tym timer blokiem obsługi komunikatów. |
propagate_to_any_targets | Próbuje zaoferować komunikat wygenerowany przez timer blok wszystkim połączonym obiektom docelowym. |
release_message | Zwalnia poprzednią rezerwację komunikatów. (Przesłonięcia source_block::release_message). |
reserve_message | Rezerwuje komunikat, który był wcześniej oferowany przez ten timer blok obsługi komunikatów. (Przesłonięcia source_block::reserve_message.) |
resume_propagation | Wznawia propagację po wydaniu rezerwacji. (Przesłonięcia source_block::resume_propagation).) |
Uwagi
Aby uzyskać więcej informacji, zobacz Asynchroniczne bloki komunikatów.
Hierarchia dziedziczenia
timer
Wymagania
Nagłówek: agents.h
Przestrzeń nazw: współbieżność
accept_message
Akceptuje komunikat oferowany przez ten timer
blok obsługi komunikatów, przenosząc własność na obiekt wywołujący.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Obiekt runtime_object_identity
oferowany message
.
Wartość zwracana
Wskaźnik do message
obiektu, którego obiekt wywołujący ma teraz własność.
consume_message
Używa komunikatu oferowanego wcześniej przez timer
obiekt docelowy i zarezerwowanego przez obiekt docelowy, przenosząc własność do obiektu wywołującego.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Obiekt runtime_object_identity
, który message
jest używany.
Wartość zwracana
Wskaźnik do message
obiektu, którego obiekt wywołujący ma teraz własność.
Uwagi
Podobnie jak accept
element , ale zawsze jest poprzedzony wywołaniem metody reserve
.
link_target_notification
Wywołanie zwrotne, które powiadamia o tym, że nowy element docelowy został połączony z tym timer
blokiem obsługi komunikatów.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parametry
_PTarget
Wskaźnik do nowo połączonego elementu docelowego.
Wstrzymaj
timer
Zatrzymuje blok obsługi komunikatów. Jeśli jest to powtarzający timer
się blok obsługi komunikatów, można go ponownie uruchomić za pomocą kolejnego start()
wywołania. W przypadku czasomierzy nie powtarzających się ma to taki sam efekt jak wywołanie stop
.
void pause();
propagate_to_any_targets
Próbuje zaoferować komunikat wygenerowany przez timer
blok wszystkim połączonym obiektom docelowym.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Zwalnia poprzednią rezerwację komunikatów.
virtual void release_message(runtime_object_identity _MsgId);
Parametry
_MsgId
message
Obiektruntime_object_identity
, który jest zwalniany.
reserve_message
Rezerwuje komunikat, który był wcześniej oferowany przez ten timer
blok obsługi komunikatów.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parametry
_MsgId
Obiekt runtime_object_identity
message
, który jest zarezerwowany.
Wartość zwracana
true
jeśli wiadomość została pomyślnie zarezerwowana, false
w przeciwnym razie.
Uwagi
Po reserve
wywołaniu metody , jeśli zwraca true
wartość , consume
albo release
musi zostać wywołana, aby przejąć lub zwolnić własność komunikatu.
resume_propagation
Wznawia propagację po wydaniu rezerwacji.
virtual void resume_propagation();
start
timer
Uruchamia blok obsługi komunikatów. Określona liczba milisekund po wywołaniu tej metody zostanie rozpropagowana określona wartość podrzędna message
jako .
void start();
zatrzymać
timer
Zatrzymuje blok obsługi komunikatów.
void stop();
czasomierz
Tworzy blok obsługi komunikatów timer
, który będzie uruchamiał daną wiadomość po określonym interwale.
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);
Parametry
_Ms
Liczba milisekund, które muszą upłynąć po wywołaniu, aby rozpocząć propagację określonego komunikatu podrzędnego.
wartość
Wartość, która będzie propagowana podrzędnie po upływie czasomierza.
_PTarget
Element docelowy, do którego czasomierz będzie propagowany jego komunikat.
_Powtarzanej
Jeśli wartość true, wskazuje, że czasomierz będzie uruchamiany okresowo co _Ms
milisekundy.
_Harmonogram
Zaplanowano Scheduler
obiekt, w którym zaplanowano zadanie timer
propagacji bloku obsługi komunikatów.
_ScheduleGroup
Obiekt ScheduleGroup
, w którym zaplanowano zadanie timer
propagacji bloku obsługi komunikatów. Używany Scheduler
obiekt jest dorozumiany przez grupę harmonogramu.
Uwagi
Jeśli nie określisz parametrów lub_ScheduleGroup
, środowisko uruchomieniowe używa domyślnego _Scheduler
harmonogramu.
~minutnik
timer
Niszczy blok obsługi komunikatów.
~timer();