Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Блок обмена сообщениями timer — это блок source_block с одной целью, который может отправлять сообщение своей цели по истечении указанного периода времени или через заданные интервалы времени.
Синтаксис
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Параметры
T
Тип полезных данных выходных сообщений этого блока.
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| таймер | Перегружен. timer Создает блок обмена сообщениями, который будет запускать заданное сообщение после указанного интервала. |
| Деструктор ~timer | Уничтожает timer блок обмена сообщениями. |
Открытые методы
| Имя | Описание |
|---|---|
| pause | timer Останавливает блок обмена сообщениями. Если это повторяющийся timer блок обмена сообщениями, его можно перезапустить с последующим start() вызовом. Для не повторяющихся таймеров это имеет тот же эффект, что stop и вызов. |
| Начало | timer Запускает блок обмена сообщениями. Указанное число миллисекунда после вызова, указанное значение будет распространяться вниз в виде message. |
| stop | timer Останавливает блок обмена сообщениями. |
Защищенные методы
| Имя | Описание |
|---|---|
| accept_message | Принимает сообщение, которое было предложено этим timer блоком обмена сообщениями, передавая владельца вызывающему объекту. |
| consume_message | Использует сообщение, которое ранее предлагалось timer целевым объектом и зарезервировано, передавая владельца вызывающему объекту. |
| link_target_notification | Обратный вызов, уведомляющий о том, что новый целевой объект был связан с этим timer блоком обмена сообщениями. |
| propagate_to_any_targets | Пытается предложить сообщение, созданное блоком timer для всех связанных целевых объектов. |
| release_message | Освобождает предыдущее резервирование сообщений. (Переопределяет source_block::release_message.) |
| reserve_message | Резервирует сообщение, ранее предлагаемое этим timer блоком обмена сообщениями. (Переопределяет source_block::reserve_message.) |
| resume_propagation | Возобновляет распространение после освобождения резервирования. (Переопределяет source_block::resume_propagation.) |
Замечания
Дополнительные сведения см. в разделе "Блоки асинхронных сообщений".
Иерархия наследования
timer
Требования
Заголовок: agents.h
Пространство имен: concurrency
accept_message
Принимает сообщение, которое было предложено этим timer блоком обмена сообщениями, передавая владельца вызывающему объекту.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Параметры
_MsgId
Предлагаемый runtime_object_identity message объект.
Возвращаемое значение
Указатель на объект, на который вызывающий message объект теперь имеет право владения.
consume_message
Использует сообщение, которое ранее предлагалось timer целевым объектом и зарезервировано, передавая владельца вызывающему объекту.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Параметры
_MsgId
Используемый runtime_object_identity message объект.
Возвращаемое значение
Указатель на объект, на который вызывающий message объект теперь имеет право владения.
Замечания
acceptАналогично, но всегда предшествует вызовуreserve.
link_target_notification
Обратный вызов, уведомляющий о том, что новый целевой объект был связан с этим timer блоком обмена сообщениями.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Параметры
_PTarget
Указатель на новый связанный целевой объект.
pause
timer Останавливает блок обмена сообщениями. Если это повторяющийся timer блок обмена сообщениями, его можно перезапустить с последующим start() вызовом. Для не повторяющихся таймеров это имеет тот же эффект, что stop и вызов.
void pause();
propagate_to_any_targets
Пытается предложить сообщение, созданное блоком timer для всех связанных целевых объектов.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Освобождает предыдущее резервирование сообщений.
virtual void release_message(runtime_object_identity _MsgId);
Параметры
_MsgId
Объект runtime_object_identity , message который освобождается.
reserve_message
Резервирует сообщение, ранее предлагаемое этим timer блоком обмена сообщениями.
virtual bool reserve_message(runtime_object_identity _MsgId);
Параметры
_MsgId
Зарезервированный runtime_object_identity message объект.
Возвращаемое значение
true Значение , если сообщение успешно зарезервировано, false в противном случае.
Замечания
После reserve вызова, если он возвращается true, consume release либо должен вызываться для принятия или освобождения владения сообщением.
resume_propagation
Возобновляет распространение после освобождения резервирования.
virtual void resume_propagation();
start
timer Запускает блок обмена сообщениями. Указанное число миллисекунда после вызова, указанное значение будет распространяться вниз в виде message.
void start();
stop
timer Останавливает блок обмена сообщениями.
void stop();
таймер
timer Создает блок обмена сообщениями, который будет запускать заданное сообщение после указанного интервала.
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);
Параметры
_Госпожа
Число миллисекунда, которое должно пройти после вызова, которое должно начинаться для распространения указанного сообщения ниже.
значение
Значение, которое будет распространяться вниз по истечении таймера.
_PTarget
Целевой объект, в который таймер будет распространять свое сообщение.
_Повторяющийся
Если значение true, указывает, что таймер периодически будет запускаться каждые _Ms миллисекунда.
_Планировщик
Объект Scheduler , в котором запланирована задача распространения для timer блока обмена сообщениями.
_ScheduleGroup
Объект ScheduleGroup , в котором запланирована задача распространения для блока обмена сообщениями timer . Используемый объект Scheduler подразумевается группой расписаний.
Замечания
Среда выполнения использует планировщик по умолчанию, если вы не указали параметры _Scheduler или _ScheduleGroup .
~таймер
Уничтожает timer блок обмена сообщениями.
~timer();