다음을 통해 공유


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 재정의)

설명

자세한 내용은 비동기 메시지 블록을 참조 하세요.

상속 계층 구조

ISource

source_block

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.

새 대상이 이 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();

참고 항목

concurrency 네임스페이스