Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 messagejako . |
| 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 acceptelement , 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 truewartość , 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 messagejako .
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();