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ğı message akış 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
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.
link_target_notification
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üyorsatrue
consume
, 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ğı message
akış 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();