Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
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ü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();