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 . |
| start | 메시징 블록을 시작합니다 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
네임스페이스: 동시성
accept_message
이 timer 메시징 블록에서 제공한 메시지를 수락하여 소유권을 호출자에게 전송합니다.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
매개 변수
_MsgId
runtime_object_identity 제공 message 된 개체의 개체입니다.
Return Value
호출자의 소유권이 message 있는 개체에 대한 포인터입니다.
consume_message
이전에 대상에서 제공하고 timer 예약한 메시지를 사용하여 소유권을 호출자에게 전송합니다.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
매개 변수
_MsgId
runtime_object_identity 사용 중인 개체의 message 개체입니다.
Return Value
호출자의 소유권이 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 개체입니다.
Return Value
true 메시지가 성공적으로 예약 false 되었으면 그렇지 않습니다.
설명
호출된 후 reserve 반환 trueconsume 되는 경우 메시지의 소유권을 취하거나 release 해제하기 위해 호출해야 합니다.
resume_propagation
예약이 해제된 후 전파를 다시 시작합니다.
virtual void resume_propagation();
start
메시징 블록을 시작합니다 timer . 이 값이 호출된 후 지정된 시간(밀리초)이며, 지정된 값은 다운스트림으로 message전파됩니다.
void start();
stop
timer 메시징 블록을 중지합니다.
void stop();
timer
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);
매개 변수
_Ms
지정된 메시지를 다운스트림으로 전파하기 위해 호출을 시작한 후 경과해야 하는 시간(밀리초)입니다.
value
타이머가 경과할 때 다운스트림으로 전파될 값입니다.
_PTarget
타이머가 메시지를 전파할 대상입니다.
_반복
true이면 타이머가 매 밀리초마다 _Ms 주기적으로 실행됨을 나타냅니다.
_스케줄러
Scheduler 메시징 블록의 전파 작업이 timer 예약된 개체입니다.
_ScheduleGroup
ScheduleGroup 메시징 블록의 전파 작업이 예약되는 timer 개체입니다. 사용된 Scheduler 개체는 일정 그룹에서 암시됩니다.
설명
런타임은 _Scheduler 또는 _ScheduleGroup 매개 변수를 지정하지 않는 경우 기본 스케줄러를 사용합니다.
~타이머
메시징 블록을 삭제합니다 timer .
~timer();