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.
Belirtilen süre geçtikten sonra veya belirli aralıklarla hedefe bir ileti gönderebilen tek hedefli bir timer mesajlaşma bloğudur.
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üklü 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 |
timer mesajlaşma bloğunu durdurur. Yinelenen timer bir mesajlaşma bloğuysa, sonraki start() bir çağrıyla yeniden başlatılabilir. Yinelenmeyen süreölçerler için, bu, stop çağrısıyla aynı etkiye sahiptir. |
| start | Mesajlaşma bloğunu timer başlatır. Bu işlev çağrıldıktan belirtilen milisaniye sayısı sonunda, belirtilen değer message olarak aşağı akış yönünde iletilecektir. |
| durmak |
timer mesajlaşma bloğunu 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 timer tarafından sunulmuş ve hedef tarafından rezerve edilmiş bir iletiyi tüketir ve bunun sahipliğini arayana aktarır. |
| link_hedef_bildirim | Bu timer mesajlaşma bloğuna yeni bir hedefin bağlandığını bildiren geri arama. |
| herhangi_bir_hedefe_yay | Blok tarafından timer oluşturulan iletiyi tüm bağlı hedeflere sunmaya çalışır. |
| yayın_mesajı | Önceki mesaj rezervasyonunu kaldırır. (Geçersiz kılmalar source_block::release_message.) |
| rezerv_mesajı | Daha önce bu timer mesajlaşma bloğu tarafından sunulan bir iletiyi ayırır. (Geçersiz kılar source_block::reserve_message.) |
| resume_propagation | Rezervasyon serbest bırakıldıktan sonra yayılım yeniden başlar. (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
kabul_mesaji
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
Sunulan message nesnesinin runtime_object_identity.
Dönüş Değeri
Çağıranın artık sahip olduğu message nesnesine ait bir işaretçi.
mesaj tüket
Daha önce timer tarafından sunulmuş ve hedef tarafından rezerve edilmiş bir iletiyi tüketir ve bunun 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 artık sahip olduğu message nesnesine ait bir işaretçi.
Açıklamalar
Bu, accept'ye benzer, ancak her zaman reserve çağrısından önce gelir.
bağlantı_hedef_bildirimi
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ğlantı yapılan hedefe işaret eden bir işaretçi.
durdur
timer mesajlaşma bloğunu durdurur. Yinelenen timer bir mesajlaşma bloğuysa, sonraki start() bir çağrıyla yeniden başlatılabilir. Yinelenmeyen süreölçerler için, bu, stop çağrısıyla aynı etkiye sahiptir.
void pause();
herhangi_bir_hedefe_yaymak
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> *);
sürüm_mesajı
Önceki mesaj rezervasyonunu kaldırır.
virtual void release_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
Bırakılan message nesnesinin runtime_object_identity serbest.
rezerve_mesajı
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 rezerve edildiyse, false aksi takdirde.
Açıklamalar
reserve çağrıldıktan sonra, eğer true döndürülürse, iletinin sahipliğini almak veya release iletmek için ya consume ya da release çağrılmalıdır.
resume_propagation
Rezervasyon serbest bırakıldıktan sonra yayılım yeniden başlar.
virtual void resume_propagation();
başla
Mesajlaşma bloğunu timer başlatır. Bu işlev çağrıldıktan belirtilen milisaniye sayısı sonunda, belirtilen değer message olarak aşağı akış yönünde iletilecektir.
void start();
durmak
timer mesajlaşma bloğunu 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
Zamanlayıcı sona erdiğinde aşağı akışa iletilecek değer.
_PTarget
Zamanlayıcının iletisini yayacağı hedef.
_Tekrarlama
True ise zamanlayıcının her _Ms milisaniyede düzenli aralıklarla tetiklendiğini gösterir.
_Zamanlayıcı
İleti timer bloğunun yayma görevinin planlandığı Scheduler nesnesi zamanlanır.
_ScheduleGroup
ScheduleGroup nesnesi, timer ileti bloğu için yayma görevinin zamanlandığı yerdir.
Scheduler kullanılan nesne zamanlama grubuyla belirtilir.
Açıklamalar
_Scheduler veya _ScheduleGroup parametrelerini belirtmezseniz çalışma zamanı varsayılan zamanlayıcıyı kullanır.
~Zamanlayıcı
Bir timer mesajlaşma bloğunu yok eder.
~timer();