Bagikan melalui


Kelas timer

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

ISource

source_block

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.

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();

Lihat juga

Namespace layanan konkurensi