Aracılığıyla paylaş


süreölçer Sınıfı

Mesajlaşma timer bloğu, belirtilen süre geçtikten sonra veya belirli aralıklarla hedefine ileti gönderebilen tek source_block hedefli bir hedeftir.

Sözdizimi

template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;

Parametreler

T
Bu bloğun çıkış iletilerinin yük türü.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
Zamanlayıcı Aşırı yüklendi. Belirli bir aralık sonrasında belirli bir timer iletiyi tetikleyecek bir mesajlaşma bloğu oluşturur.
~süreölçer Yıkıcı Bir timer mesajlaşma bloğunu yok eder.

Genel Yöntemler

Veri Akışı Adı Açıklama
Duraklat Mesajlaşma bloğunu timer durdurur. Yinelenen timer bir mesajlaşma bloğuysa, sonraki start() bir çağrıyla yeniden başlatılabilir. Yinelenen olmayan süreölçerler için bu, çağrıyla stop aynı etkiye sahiptir.
start Mesajlaşma bloğunu timer başlatır. Bu çağrıldıktan sonra belirtilen milisaniye sayısı, belirtilen değer aşağı messageakış olarak yayılır.
durmak Mesajlaşma bloğunu timer durdurur.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
accept_message Bu timer mesajlaşma bloğu tarafından sunulan bir iletiyi kabul eder ve sahipliği arayana aktarır.
consume_message Daha önce tarafından sunulan ve hedef tarafından timer ayrılmış bir iletiyi kullanır ve sahipliğini arayana aktarır.
link_target_notification Bu timer mesajlaşma bloğuna yeni bir hedefin bağlandığını bildiren geri arama.
propagate_to_any_targets Blok tarafından timer oluşturulan iletiyi tüm bağlı hedeflere sunmaya çalışır.
release_message Önceki ileti rezervasyonlarını yayınlar. (Geçersiz kılmalar source_block::release_message.)
reserve_message Daha önce bu timer mesajlaşma bloğu tarafından sunulan bir iletiyi ayırır. (Geçersiz kılmalar source_block::reserve_message.)
resume_propagation Rezervasyon yayımlandıktan sonra yayılmaya devam eder. (Geçersiz kılmalar source_block::resume_propagation.)

Açıklamalar

Daha fazla bilgi için bkz . Zaman Uyumsuz İleti Blokları.

Devralma Hiyerarşisi

ISource

source_block

timer

Gereksinimler

Üst bilgi: agents.h

Ad alanı: eşzamanlılık

accept_message

Bu timer mesajlaşma bloğu tarafından sunulan bir iletiyi kabul eder ve sahipliği arayana aktarır.

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

Parametreler

_MsgId
runtime_object_identity Sunulan message nesnenin öğesi.

Dönüş Değeri

Çağıranın message artık sahip olduğu nesnenin işaretçisi.

consume_message

Daha önce tarafından sunulan ve hedef tarafından timer ayrılmış bir iletiyi kullanır ve sahipliğini arayana aktarır.

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

Parametreler

_MsgId
runtime_object_identity Tüketilen nesnenin message sayısı.

Dönüş Değeri

Çağıranın message artık sahip olduğu nesnenin işaretçisi.

Açıklamalar

benzeridir accept, ancak her zaman için bir çağrısının reserveönündedir.

Bu timer mesajlaşma bloğuna yeni bir hedefin bağlandığını bildiren geri arama.

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

Parametreler

_PTarget
Yeni bağlanan hedefe işaret eden bir işaretçi.

duraklat

Mesajlaşma bloğunu timer durdurur. Yinelenen timer bir mesajlaşma bloğuysa, sonraki start() bir çağrıyla yeniden başlatılabilir. Yinelenen olmayan süreölçerler için bu, çağrıyla stop aynı etkiye sahiptir.

void pause();

propagate_to_any_targets

Blok tarafından timer oluşturulan iletiyi tüm bağlı hedeflere sunmaya çalışır.

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

release_message

Önceki ileti rezervasyonlarını yayınlar.

virtual void release_message(runtime_object_identity _MsgId);

Parametreler

_MsgId
Serbest runtime_object_identity bırakılan nesnenin message .

reserve_message

Daha önce bu timer mesajlaşma bloğu tarafından sunulan bir iletiyi ayırır.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parametreler

_MsgId
runtime_object_identity Ayrılan nesnenin message öğesi.

Dönüş Değeri

true ileti başarıyla ayrılmışsa, false aksi takdirde.

Açıklamalar

çağrıldıktan sonrareserve, döndürüyorsatrueconsume, iletinin sahipliğini almak veya release yayınlamak için çağrılmalıdır.

resume_propagation

Rezervasyon yayımlandıktan sonra yayılmaya devam eder.

virtual void resume_propagation();

start

Mesajlaşma bloğunu timer başlatır. Bu çağrıldıktan sonra belirtilen milisaniye sayısı, belirtilen değer aşağı messageakış olarak yayılır.

void start();

durmak

Mesajlaşma bloğunu timer durdurur.

void stop();

zamanlayıcı

Belirli bir aralık sonrasında belirli bir timer iletiyi tetikleyecek bir mesajlaşma bloğu oluşturur.

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

Parametreler

_Ms
Belirtilen iletinin aşağı akışa yayılması için başlatma çağrısından sonra geçmesi gereken milisaniye sayısı.

value
Süreölçer geçtiğinde aşağı akışa yayılacak değer.

_PTarget
Zamanlayıcının iletisini yayacağı hedef.

_Yine -lenen
True ise zamanlayıcının her _Ms milisaniyede düzenli aralıklarla tetiklendiğini gösterir.

_Zamanlayıcı
İleti Scheduler bloğu için yayma görevinin timer zamanlandığı nesne zamanlanır.

_ScheduleGroup
ScheduleGroup İleti bloğu için yayma görevinin timer zamanlandığı nesne. Scheduler Kullanılan nesne zamanlama grubu tarafından örtülür.

Açıklamalar

veya _ScheduleGroup parametrelerini belirtmezseniz çalışma zamanı varsayılan zamanlayıcıyı _Scheduler kullanır.

~Zamanlayıcı

Bir timer mesajlaşma bloğunu yok eder.

~timer();

Ayrıca bkz.

Eşzamanlılık Ad Alanı