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