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 | timer Menghentikan blok olahpesan. Jika ini adalah blok olahpesan berulang timer , itu dapat dimulai ulang dengan panggilan berikutnya start() . Untuk timer yang tidak berulang, ini memiliki efek stop yang sama dengan panggilan. |
| mulai | timer Memulai blok olahpesan. Jumlah milidetik yang ditentukan setelah ini dipanggil, nilai yang ditentukan akan disebarkan ke hilir sebagai message. |
| stop | timer Menghentikan blok olahpesan. |
Metode yang Dilindungi
| Nama | Deskripsi |
|---|---|
| accept_message | Menerima pesan yang ditawarkan oleh blok olahpesan ini timer , mentransfer kepemilikan ke pemanggil. |
| consume_message | Mengonsumsi pesan yang sebelumnya ditawarkan oleh timer dan dicadangkan oleh target, mentransfer kepemilikan ke pemanggil. |
| link_target_notification | Panggilan balik yang memberi tahu bahwa target baru telah ditautkan ke blok olahpesan ini timer . |
| propagate_to_any_targets | Mencoba menawarkan pesan yang dihasilkan oleh timer blok ke semua target yang ditautkan. |
| release_message | Merilis reservasi pesan sebelumnya. (Mengambil alih source_block::release_message.) |
| reserve_message | Memesan pesan yang sebelumnya ditawarkan oleh blok olahpesan ini timer . (Mengambil alih source_block::reserve_message.) |
| resume_propagation | Melanjutkan penyebaran setelah reservasi dirilis. (Mengambil alih source_block::resume_propagation.) |
Keterangan
Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.
Hierarki Warisan
timer
Persyaratan
Header: agents.h
Namespace: konkurensi
accept_message
Menerima pesan yang ditawarkan oleh blok olahpesan ini timer , mentransfer kepemilikan ke pemanggil.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Dari runtime_object_identity objek yang ditawarkan message .
Tampilkan Nilai
Penunjuk ke message objek yang sekarang dimiliki pemanggil.
consume_message
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 message objek yang sekarang dimiliki pemanggil.
Keterangan
Mirip acceptdengan , tetapi selalu didahului oleh panggilan ke reserve.
link_target_notification
Panggilan balik yang memberi tahu bahwa target baru telah ditautkan ke blok olahpesan ini timer .
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Parameter
_PTarget
Penunjuk ke target yang baru ditautkan.
jeda
timer Menghentikan blok olahpesan. Jika ini adalah blok olahpesan berulang timer , itu dapat dimulai ulang dengan panggilan berikutnya start() . Untuk timer yang tidak berulang, ini memiliki efek stop yang sama dengan panggilan.
void pause();
propagate_to_any_targets
Mencoba menawarkan pesan yang dihasilkan oleh timer blok ke semua target yang ditautkan.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Merilis reservasi pesan sebelumnya.
virtual void release_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Objek runtime_object_identity yang message dilepaskan.
reserve_message
Memesan pesan yang sebelumnya ditawarkan oleh blok olahpesan ini timer .
virtual bool reserve_message(runtime_object_identity _MsgId);
Parameter
_MsgId
Objek runtime_object_identity yang message 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 penyebaran setelah reservasi dirilis.
virtual void resume_propagation();
mulai
timer Memulai blok olahpesan. Jumlah milidetik yang ditentukan setelah ini dipanggil, nilai yang ditentukan akan disebarkan ke hilir sebagai message.
void start();
stop
timer Menghentikan blok olahpesan.
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 disebarkan ke hilir ketika timer berlalu.
_PTarget
Target tempat timer akan menyebarluaskan pesannya.
_Mengulangi
Jika true, menunjukkan bahwa timer akan menembak secara berkala setiap _Ms milidetik.
_Scheduler
Objek Scheduler tempat tugas penyebaran untuk timer blok olahpesan dijadwalkan.
_ScheduleGroup
Objek ScheduleGroup tempat tugas penyebaran untuk timer blok olahpesan dijadwalkan. Objek Scheduler yang digunakan tersirat oleh grup jadwal.
Keterangan
Runtime menggunakan penjadwal default jika Anda tidak menentukan _Scheduler parameter atau _ScheduleGroup .
~Timer
timer Menghancurkan blok olahpesan.
~timer();