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 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

ISource

source_block

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.

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

Lihat juga

Namespace layanan konkurensi