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.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
timer Przeciążone. Tworzy blok obsługi komunikatów timer , który będzie uruchamiał daną wiadomość po określonym interwale.
~timer, destruktor Niszczy blok komunikatów.

Metody publiczne

Nazwa/nazwisko opis
pauza timer Zatrzymuje blok obsługi komunikatów. Jeśli jest to powtarzający się blok komunikatów timer, można go ponownie uruchomić za pomocą kolejnego wywołania start(). W przypadku czasomierzy nie powtarzających się ma to taki sam efekt jak wywołanie stop .
start Rozpoczyna blok komunikatów timer. Określona wartość zostanie rozpropagowana w dół jako message po upływie określonej liczby milisekund od momentu wywołania tej metody.
Stop timer Zatrzymuje blok obsługi komunikatów.

Metody chronione

Nazwa/nazwisko opis
accept_message Akceptuje wiadomość oferowaną przez ten timer blok przekazywania wiadomości, przenosząc własność na wywołującego.
consume_message Używa komunikatu oferowanego wcześniej przez timer i zarezerwowanego przez odbiorcę, przenosząc własność do wywołującego.
link_target_notification Wywołanie zwrotne, które powiadamia o połączeniu nowego celu z tym modułem komunikacyjnym timer.
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 Zachowuje komunikat, który był wcześniej oferowany przez ten timer blok komunikatów. (Nadpisuje 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ść

zaakceptuj_komunikat

Akceptuje wiadomość oferowaną przez ten timer blok przekazywania wiadomości, przenosząc własność na wywołującego.

virtual message<T>* accept_message(runtime_object_identity _MsgId);

Parametry

_MsgId
runtime_object_identity oferowanego obiektu message.

Wartość zwracana

Wskaźnik do message obiektu, którego właścicielem jest teraz podmiot wywołujący.

przetwórz_wiadomość

Używa komunikatu oferowanego wcześniej przez timer i zarezerwowanego przez odbiorcę, przenosząc własność do wywołującego.

virtual message<T>* consume_message(runtime_object_identity _MsgId);

Parametry

_MsgId
Obiekt runtime_object_identity, który jest konsumowany w kontekście message.

Wartość zwracana

Wskaźnik do message obiektu, którego właścicielem jest teraz podmiot wywołujący.

Uwagi

Podobnie jak accept, ale zawsze jest poprzedzony wywołaniem reserve.

Wywołanie zwrotne, które powiadamia o połączeniu nowego celu z tym modułem komunikacyjnym timer.

virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);

Parametry

_PTarget
Wskaźnik do nowo połączonego elementu docelowego.

wstrzymać

timer Zatrzymuje blok obsługi komunikatów. Jeśli jest to powtarzający się blok komunikatów timer, można go ponownie uruchomić za pomocą kolejnego wywołania start(). W przypadku czasomierzy nie powtarzających się ma to taki sam efekt jak wywołanie stop .

void pause();

propaguj_do_dowolnych_celów

Próbuje zaoferować komunikat wygenerowany przez timer blok wszystkim połączonym obiektom docelowym.

virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);

wiadomość_wydania

Zwalnia poprzednią rezerwację komunikatów.

virtual void release_message(runtime_object_identity _MsgId);

Parametry

_MsgId
runtime_object_identity Obiektmessage, który jest zwalniany.

wiadomość o rezerwacji

Zachowuje komunikat, który był wcześniej oferowany przez ten timer blok komunikatów.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parametry

_MsgId
Obiekt runtime_object_identitymessage , który jest zarezerwowany.

Wartość zwracana

true jeśli wiadomość została pomyślnie zarezerwowana, false w przeciwnym wypadku.

Uwagi

Po wywołaniu reserve, jeśli zwraca true, consume albo release muszą zostać wywołane, aby przejąć lub zwolnić własność komunikatu.

wznów_propagację

Wznawia propagację po wydaniu rezerwacji.

virtual void resume_propagation();

start

Rozpoczyna blok komunikatów timer. Określona wartość zostanie rozpropagowana w dół jako message po upływie określonej liczby milisekund od momentu wywołania tej metody.

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 funkcji start, aby określony komunikat został przekazany dalej w dół strumienia.

wartość
Wartość, która będzie propagowana podrzędnie po upływie czasomierza.

_PTarget
Element docelowy, do którego czasomierz będzie przekazywał swój komunikat.

_Powtarzanie
Jeśli wartość true, wskazuje, że czasomierz będzie uruchamiany okresowo co _Ms milisekundy.

_Harmonogram
Zaplanowano obiekt Scheduler, w którym wykonywane jest zadanie propagacji dla bloku wiadomości timer.

_ScheduleGroup
W obiekcie ScheduleGroup zaplanowano zadanie propagacji dla bloku obsługi komunikatów timer. Używany obiekt wynika z grupy harmonogramu.

Uwagi

Jeśli nie określisz parametrów _Scheduler lub _ScheduleGroup, środowisko uruchomieniowe używa domyślnego harmonogramu.

~minutnik

Niszczy blok komunikatów.

~timer();

Zobacz też

Przestrzeń nazw współbieżności