Класс timertimer Class

Блок обмена сообщениями timer — это блок source_block с одной целью, который может отправлять сообщение своей цели по истечении указанного периода времени или через заданные интервалы времени.A timer messaging block is a single-target source_block capable of sending a message to its target after a specified time period has elapsed or at specific intervals.

СинтаксисSyntax

template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;

ПараметрыParameters

TT
Тип полезных данных выходных сообщений этого блока.The payload type of the output messages of this block.

ЭлементыMembers

Открытые конструкторыPublic Constructors

nameName ОписаниеDescription
активностиtimer Перегружен.Overloaded. Конструирует timer блок обмена сообщениями, который будет запускать заданное сообщение после указанного интервала.Constructs a timer messaging block that will fire a given message after a specified interval.
Деструктор ~ Timer~timer Destructor Уничтожает timer блок обмена сообщениями.Destroys a timer messaging block.

Открытые методыPublic Methods

nameName ОписаниеDescription
pausepause Останавливает timer блок обмена сообщениями.Stops the timer messaging block. Если это timer блок повторяющегося обмена сообщениями, его можно перезапустить при последующем start() вызове.If it is a repeating timer messaging block, it can be restarted with a subsequent start() call. Для неповторяющихся таймеров это действие аналогично stop вызову.For non-repeating timers, this has the same effect as a stop call.
startstart Запускает timer блок обмена сообщениями.Starts the timer messaging block. Указанное число миллисекунд после вызова этого параметра, указанное значение будет распространяться в нисходящем направлении как message .The specified number of milliseconds after this is called, the specified value will be propagated downstream as a message.
stopstop Останавливает timer блок обмена сообщениями.Stops the timer messaging block.

Защищенные методыProtected Methods

ИмяName ОписаниеDescription
accept_messageaccept_message Принимает сообщение, которое было предложено этим timer блоком обмена сообщениями, передавая владение вызывающему объекту.Accepts a message that was offered by this timer messaging block, transferring ownership to the caller.
consume_messageconsume_message Использует сообщение, которое было ранее предложено timer и зарезервировано целевым объектом, передавая владение вызывающему объекту.Consumes a message previously offered by the timer and reserved by the target, transferring ownership to the caller.
link_target_notificationlink_target_notification Обратный вызов, уведомляющий о том, что новый целевой объект связан с этим timer блоком обмена сообщениями.A callback that notifies that a new target has been linked to this timer messaging block.
propagate_to_any_targetspropagate_to_any_targets Пытается предложить сообщение, созданное timer блоком, ко всем связанным целевым объектам.Tries to offer the message produced by the timer block to all of the linked targets.
release_messagerelease_message Освобождает предыдущее резервирование сообщения.Releases a previous message reservation. (Переопределяет source_block:: release_message.)(Overrides source_block::release_message.)
reserve_messagereserve_message Резервирует сообщение, которое было ранее предложено этим timer блоком обмена сообщениями.Reserves a message previously offered by this timer messaging block. (Переопределяет source_block:: reserve_message.)(Overrides source_block::reserve_message.)
resume_propagationresume_propagation Возобновляет распространение после освобождения резервирования.Resumes propagation after a reservation has been released. (Переопределяет source_block:: resume_propagation.)(Overrides source_block::resume_propagation.)

КомментарииRemarks

Дополнительные сведения см. в разделе асинхронные блоки сообщений.For more information, see Asynchronous Message Blocks.

Иерархия наследованияInheritance Hierarchy

ISourceISource

source_blocksource_block

timer

ТребованияRequirements

Заголовок: agents.hHeader: agents.h

Пространство имен: параллелизмNamespace: concurrency

accept_messageaccept_message

Принимает сообщение, которое было предложено этим timer блоком обмена сообщениями, передавая владение вызывающему объекту.Accepts a message that was offered by this timer messaging block, transferring ownership to the caller.

virtual message<T>* accept_message(runtime_object_identity _MsgId);

ПараметрыParameters

_MsgId_MsgId
runtime_object_identityОбъект предлагаемого message объекта.The runtime_object_identity of the offered message object.

Возвращаемое значениеReturn Value

Указатель на message объект, владельцем которого стал вызывающий объект.A pointer to the message object that the caller now has ownership of.

consume_messageconsume_message

Использует сообщение, которое было ранее предложено timer и зарезервировано целевым объектом, передавая владение вызывающему объекту.Consumes a message previously offered by the timer and reserved by the target, transferring ownership to the caller.

virtual message<T>* consume_message(runtime_object_identity _MsgId);

ПараметрыParameters

_MsgId_MsgId
runtime_object_identityОбъект для используемого message объекта.The runtime_object_identity of the message object being consumed.

Возвращаемое значениеReturn Value

Указатель на message объект, владельцем которого стал вызывающий объект.A pointer to the message object that the caller now has ownership of.

КомментарииRemarks

Аналогично accept , но всегда предшествует вызову reserve .Similar to accept, but is always preceded by a call to reserve.

Обратный вызов, уведомляющий о том, что новый целевой объект связан с этим timer блоком обмена сообщениями.A callback that notifies that a new target has been linked to this timer messaging block.

virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);

ПараметрыParameters

_PTarget_PTarget
Указатель на вновь связанный целевой объект.A pointer to the newly linked target.

работуpause

Останавливает timer блок обмена сообщениями.Stops the timer messaging block. Если это timer блок повторяющегося обмена сообщениями, его можно перезапустить при последующем start() вызове.If it is a repeating timer messaging block, it can be restarted with a subsequent start() call. Для неповторяющихся таймеров это действие аналогично stop вызову.For non-repeating timers, this has the same effect as a stop call.

void pause();

propagate_to_any_targetspropagate_to_any_targets

Пытается предложить сообщение, созданное timer блоком, ко всем связанным целевым объектам.Tries to offer the message produced by the timer block to all of the linked targets.

virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);

release_messagerelease_message

Освобождает предыдущее резервирование сообщения.Releases a previous message reservation.

virtual void release_message(runtime_object_identity _MsgId);

ПараметрыParameters

_MsgId_MsgId
runtime_object_identity message Объект для освобожденного объекта.The runtime_object_identity of the message object being released.

reserve_messagereserve_message

Резервирует сообщение, которое было ранее предложено этим timer блоком обмена сообщениями.Reserves a message previously offered by this timer messaging block.

virtual bool reserve_message(runtime_object_identity _MsgId);

ПараметрыParameters

_MsgId_MsgId
runtime_object_identity message Объект для резервируемого объекта.The runtime_object_identity of the message object being reserved.

Возвращаемое значениеReturn Value

true значение, если сообщение было успешно зарезервировано, false в противном случае.true if the message was successfully reserved, false otherwise.

КомментарииRemarks

После reserve вызова метода, если он возвращает значение true , consume release метод или должен быть вызван, чтобы принять или освободить владение сообщением.After reserve is called, if it returns true, either consume or release must be called to either take or release ownership of the message.

resume_propagationresume_propagation

Возобновляет распространение после освобождения резервирования.Resumes propagation after a reservation has been released.

virtual void resume_propagation();

запуститьstart

Запускает timer блок обмена сообщениями.Starts the timer messaging block. Указанное число миллисекунд после вызова этого параметра, указанное значение будет распространяться в нисходящем направлении как message .The specified number of milliseconds after this is called, the specified value will be propagated downstream as a message.

void start();

позицииstop

Останавливает timer блок обмена сообщениями.Stops the timer messaging block.

void stop();

активностиtimer

Конструирует timer блок обмена сообщениями, который будет запускать заданное сообщение после указанного интервала.Constructs a timer messaging block that will fire a given message after a specified interval.

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

ПараметрыParameters

_Ms_Ms
Число миллисекунд, которое должно пройти после вызова метода Start для указанного сообщения, чтобы передать его в нисходящее распространение.The number of milliseconds that must elapse after the call to start for the specified message to be propagated downstream.

valuevalue
Значение, которое будет распространяться дальше по истечении времени ожидания.The value which will be propagated downstream when the timer elapses.

_PTarget_PTarget
Целевой объект, в который таймер будет распространять свое сообщение.The target to which the timer will propagate its message.

_Repeating_Repeating
Значение true показывает, что таймер будет срабатывать каждые _Ms миллисекунды.If true, indicates that the timer will fire periodically every _Ms milliseconds.

_Scheduler_Scheduler
SchedulerОбъект, в котором запланирована задача распространения для timer блока обмена сообщениями.The Scheduler object within which the propagation task for the timer messaging block is scheduled is scheduled.

_ScheduleGroup_ScheduleGroup
Объект ScheduleGroup , в котором запланирована задача распространения для блока обмена сообщениями timer .The ScheduleGroup object within which the propagation task for the timer messaging block is scheduled. Используемый объект Scheduler подразумевается группой расписаний.The Scheduler object used is implied by the schedule group.

КомментарииRemarks

Среда выполнения использует планировщик по умолчанию, если вы не указали параметры _Scheduler или _ScheduleGroup .The runtime uses the default scheduler if you do not specify the _Scheduler or _ScheduleGroup parameters.

~ Timer~timer

Уничтожает timer блок обмена сообщениями.Destroys a timer messaging block.

~timer();

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace