Notatka
Dostęp do tej strony wymaga autoryzacji. Może 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.
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
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.
powiadomienie_o_celu_linku
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();