Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
timer Blok olahpesan adalah target source_block tunggal yang mampu mengirim pesan ke targetnya setelah periode waktu tertentu berlalu atau pada interval tertentu.
Sintaks
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Parameter
T
Jenis payload pesan output blok ini.
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| Timer | Kelebihan beban. Membuat blok olahpesan timer yang akan mengaktifkan pesan tertentu setelah interval tertentu. |
| ~timer Destructor |
timer Menghancurkan blok olahpesan. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| jeda | Menghentikan blok pesan timer. Jika ini adalah blok pesan yang berulang timer, itu bisa dimulai lagi dengan panggilan selanjutnya start(). Untuk timer yang tidak berulang, ini memiliki efek yang sama dengan melakukan panggilan stop. |
| mulai | Memulai blok olahpesan timer. Jumlah milidetik yang ditentukan setelah ini dipanggil, nilai yang ditentukan akan disebarkan ke hilir sebagai message. |
| berhenti | Menghentikan blok pesan timer. |
Metode yang Dilindungi
| Nama | Deskripsi |
|---|---|
| accept_message | Menerima pesan yang ditawarkan oleh blok olahpesan ini timer, dengan mentransfer kepemilikannya kepada pemanggil. |
| consume_message | Mengonsumsi pesan yang sebelumnya ditawarkan oleh timer dan dicadangkan oleh target, mentransfer kepemilikan ke pemanggil. |
| notifikasi_target_tautan | Sebuah callback yang memberi tahu bahwa target baru telah ditautkan ke blok pesan ini timer. |
| sebarkan_ke_semua_tujuan | Berusaha untuk menawarkan pesan yang dihasilkan oleh blok timer ke semua target yang ditautkan. |
| release_message | Menghapus reservasi pesan yang sebelumnya. (Mengganti source_block::release_message.) |
| reserve_message | Mengamankan pesan yang sebelumnya ditawarkan oleh blok olahpesan ini timer. (Mengganti source_block::reserve_message.) |
| resume_propagation | Melanjutkan proses penyebaran setelah reservasi dilepaskan. (Mengambil alih source_block::resume_propagation.) |
Keterangan
Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.
Hierarki Pewarisan
timer
Persyaratan
Header: agents.h
Namespace: konkurensi
terima_pesan
Menerima pesan yang ditawarkan oleh blok olahpesan ini timer, dengan mentransfer kepemilikannya kepada pemanggil.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Objek message yang ditawarkan dari runtime_object_identity.
Tampilkan Nilai
Penunjuk ke objek message yang dimiliki sekarang oleh pemanggil.
konsumsi_pesan
Mengonsumsi pesan yang sebelumnya ditawarkan oleh timer dan dicadangkan oleh target, mentransfer kepemilikan ke pemanggil.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Objek runtime_object_identity yang message dikonsumsi.
Tampilkan Nilai
Penunjuk ke objek message yang dimiliki sekarang oleh pemanggil.
Keterangan
Mirip dengan accept, tetapi selalu didahului oleh panggilan ke reserve.
notifikasi_tujuan_tautan
Sebuah callback yang memberi tahu bahwa target baru telah ditautkan ke blok pesan ini timer.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parameter
_PTarget
Penunjuk menuju target yang baru saja ditautkan.
jeda
Menghentikan blok pesan timer. Jika ini adalah blok pesan yang berulang timer, itu bisa dimulai lagi dengan panggilan selanjutnya start(). Untuk timer yang tidak berulang, ini memiliki efek yang sama dengan melakukan panggilan stop.
void pause();
menyebarkan_ke_semua_target
Berusaha untuk menawarkan pesan yang dihasilkan oleh blok timer ke semua target yang ditautkan.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
pesan_rilis
Menghapus reservasi pesan yang sebelumnya.
virtual void release_message(runtime_object_identity _MsgId);
Parameter
_MsgId
runtime_object_identity dari objek message yang dilepaskan.
pesan_cadangan
Mengamankan pesan yang sebelumnya ditawarkan oleh blok olahpesan ini timer.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Objek message dari runtime_object_identity sedang dicadangkan.
Tampilkan Nilai
true jika pesan berhasil dicadangkan, false jika tidak.
Keterangan
Setelah reserve dipanggil, jika mengembalikan true, baik consume atau release harus dipanggil untuk mengambil atau melepaskan kepemilikan pesan.
resume_propagation
Melanjutkan proses penyebaran setelah reservasi dilepaskan.
virtual void resume_propagation();
mulai
Memulai blok olahpesan timer. Jumlah milidetik yang ditentukan setelah ini dipanggil, nilai yang ditentukan akan disebarkan ke hilir sebagai message.
void start();
berhenti
Menghentikan blok pesan timer.
void stop();
timer
Membuat blok olahpesan timer yang akan mengaktifkan pesan tertentu setelah interval tertentu.
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);
Parameter
_Ms
Jumlah milidetik yang harus berlalu setelah panggilan dimulai agar pesan yang ditentukan disebarluaskan di hilir.
value
Nilai yang akan didistribusikan ke bagian hilir ketika timer berlalu.
_PTarget
Target kepada siapa timer akan mengirimkan pesannya.
_Mengulangi
Jika bernilai true, menunjukkan bahwa timer akan diaktifkan dengan interval setiap _Ms milidetik.
_Scheduler
Objek Scheduler di mana tugas penyebaran untuk timer blok olahpesan dijadwalkan.
_ScheduleGroup
Objek ScheduleGroup di mana tugas propagasi untuk blok olahpesan timer dijadwalkan. Objek Scheduler yang digunakan dapat disimpulkan dari grup jadwal.
Keterangan
Runtime menggunakan penjadwal default jika Anda tidak menentukan _Scheduler parameter atau _ScheduleGroup .
~Timer
timer Menghancurkan blok olahpesan.
~timer();