timer 클래스
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
반환 true
consume
되는 경우 메시지의 소유권을 취하거나 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();