Udostępnij za pośrednictwem


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 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

ISource

source_block

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.

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();

Zobacz też

Przestrzeń nazw współbieżności