timer 클래스timer Class

timer 메시징 블록은 지정된 기간이 경과한 후 또는 특정 간격마다 대상에 메시지를 보낼 수 있는 단일 대상 source_block입니다.A timer messaging block is a single-target source_block capable of sending a message to its target after a specified time period has elapsed or at specific intervals.

구문Syntax

template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;

매개 변수Parameters

TT
이 블록에 대 한 출력 메시지의 페이로드 유형입니다.The payload type of the output messages of this block.

멤버Members

Public 생성자Public Constructors

NameName 설명Description
시간이timer 오버로드되었습니다.Overloaded. 지정 된 timer 간격 후 지정 된 메시지를 발생 시킬 메시징 블록을 생성 합니다.Constructs a timer messaging block that will fire a given message after a specified interval.
~ timer 소멸자~timer Destructor 메시징 블록을 소멸 시킵니다 timer .Destroys a timer messaging block.

Public 메서드Public Methods

이름Name 설명Description
pausepause timer메시징 블록을 중지 합니다.Stops the timer messaging block. 반복 되는 timer 메시징 블록인 경우 후속 호출을 사용 하 여 다시 시작할 수 있습니다 start() .If it is a repeating timer messaging block, it can be restarted with a subsequent start() call. 반복 되지 않는 타이머의 경우 호출 하는 것과 동일한 효과가 있습니다 stop .For non-repeating timers, this has the same effect as a stop call.
startstart timer메시징 블록을 시작 합니다.Starts the timer messaging block. 이이 호출 된 후 지정 된 시간 (밀리초)이 호출 되 면 지정 된 값이 다운스트림에로 전파 됩니다 message .The specified number of milliseconds after this is called, the specified value will be propagated downstream as a message.
stopstop timer메시징 블록을 중지 합니다.Stops the timer messaging block.

Protected 메서드Protected Methods

NameName 설명Description
accept_messageaccept_message timer호출자에 게 소유권을 전송 하는이 메시징 블록에서 제공 된 메시지를 수락 합니다.Accepts a message that was offered by this timer messaging block, transferring ownership to the caller.
consume_messageconsume_message 에서 이전에 제공 하 고 대상에 의해 예약 된 메시지를 사용 하 여 timer 호출자에 게 소유권을 전송 합니다.Consumes a message previously offered by the timer and reserved by the target, transferring ownership to the caller.
link_target_notificationlink_target_notification 새 대상이이 메시징 블록에 연결 되었음을 알리는 콜백입니다 timer .A callback that notifies that a new target has been linked to this timer messaging block.
propagate_to_any_targetspropagate_to_any_targets 블록에서 생성 한 메시지를 timer 모든 연결 된 대상에 제공 하려고 시도 합니다.Tries to offer the message produced by the timer block to all of the linked targets.
release_messagerelease_message 이전 메시지 예약을 해제 합니다.Releases a previous message reservation. Source_block:: release_message를 재정의 합니다.(Overrides source_block::release_message.)
reserve_messagereserve_message 이 메시징 블록에 의해 이전에 제공 된 메시지를 예약 timer 합니다.Reserves a message previously offered by this timer messaging block. Source_block:: reserve_message를 재정의 합니다.(Overrides source_block::reserve_message.)
resume_propagationresume_propagation 예약이 해제 된 후 전파를 다시 시작 합니다.Resumes propagation after a reservation has been released. Source_block:: resume_propagation를 재정의 합니다.(Overrides source_block::resume_propagation.)

설명Remarks

자세한 내용은 비동기 메시지 블록을 참조 하세요.For more information, see Asynchronous Message Blocks.

상속 계층 구조Inheritance Hierarchy

ISourceISource

source_blocksource_block

timer

요구 사항Requirements

헤더: agents.hHeader: agents.h

네임 스페이스: 동시성Namespace: concurrency

accept_messageaccept_message

timer호출자에 게 소유권을 전송 하는이 메시징 블록에서 제공 된 메시지를 수락 합니다.Accepts a message that was offered by this timer messaging block, transferring ownership to the caller.

virtual message<T>* accept_message(runtime_object_identity _MsgId);

매개 변수Parameters

_MsgId_MsgId
runtime_object_identity제공 된 개체의입니다 message .The runtime_object_identity of the offered message object.

Return ValueReturn Value

message호출자가 소유 하 고 있는 개체에 대 한 포인터입니다.A pointer to the message object that the caller now has ownership of.

consume_messageconsume_message

에서 이전에 제공 하 고 대상에 의해 예약 된 메시지를 사용 하 여 timer 호출자에 게 소유권을 전송 합니다.Consumes a message previously offered by the timer and reserved by the target, transferring ownership to the caller.

virtual message<T>* consume_message(runtime_object_identity _MsgId);

매개 변수Parameters

_MsgId_MsgId
runtime_object_identity message 사용 되는 개체의입니다.The runtime_object_identity of the message object being consumed.

Return ValueReturn Value

message호출자가 소유 하 고 있는 개체에 대 한 포인터입니다.A pointer to the message object that the caller now has ownership of.

설명Remarks

와 비슷하지만 accept 항상를 호출 reserve 합니다.Similar to accept, but is always preceded by a call to reserve.

새 대상이이 메시징 블록에 연결 되었음을 알리는 콜백입니다 timer .A callback that notifies that a new target has been linked to this timer messaging block.

virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);

매개 변수Parameters

_PTarget_PTarget
새로 연결 된 대상에 대 한 포인터입니다.A pointer to the newly linked target.

동안pause

timer메시징 블록을 중지 합니다.Stops the timer messaging block. 반복 되는 timer 메시징 블록인 경우 후속 호출을 사용 하 여 다시 시작할 수 있습니다 start() .If it is a repeating timer messaging block, it can be restarted with a subsequent start() call. 반복 되지 않는 타이머의 경우 호출 하는 것과 동일한 효과가 있습니다 stop .For non-repeating timers, this has the same effect as a stop call.

void pause();

propagate_to_any_targetspropagate_to_any_targets

블록에서 생성 한 메시지를 timer 모든 연결 된 대상에 제공 하려고 시도 합니다.Tries to offer the message produced by the timer block to all of the linked targets.

virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);

release_messagerelease_message

이전 메시지 예약을 해제 합니다.Releases a previous message reservation.

virtual void release_message(runtime_object_identity _MsgId);

매개 변수Parameters

_MsgId_MsgId
runtime_object_identity message 해제 되는 개체의입니다.The runtime_object_identity of the message object being released.

reserve_messagereserve_message

이 메시징 블록에 의해 이전에 제공 된 메시지를 예약 timer 합니다.Reserves a message previously offered by this timer messaging block.

virtual bool reserve_message(runtime_object_identity _MsgId);

매개 변수Parameters

_MsgId_MsgId
runtime_object_identity message 예약 되는 개체의입니다.The runtime_object_identity of the message object being reserved.

Return ValueReturn Value

true 메시지가 성공적으로 예약 되었으면이 고, false 그렇지 않으면입니다.true if the message was successfully reserved, false otherwise.

설명Remarks

가 호출 된 후를 reserve 반환 하면 true 또는을 consume release 호출 하 여 메시지의 소유권을 가져오거나 해제 해야 합니다.After reserve is called, if it returns true, either consume or release must be called to either take or release ownership of the message.

resume_propagationresume_propagation

예약이 해제 된 후 전파를 다시 시작 합니다.Resumes propagation after a reservation has been released.

virtual void resume_propagation();

시작start

timer메시징 블록을 시작 합니다.Starts the timer messaging block. 이이 호출 된 후 지정 된 시간 (밀리초)이 호출 되 면 지정 된 값이 다운스트림에로 전파 됩니다 message .The specified number of milliseconds after this is called, the specified value will be propagated downstream as a message.

void start();

막을stop

timer메시징 블록을 중지 합니다.Stops the timer messaging block.

void stop();

시간이timer

지정 된 timer 간격 후 지정 된 메시지를 발생 시킬 메시징 블록을 생성 합니다.Constructs a timer messaging block that will fire a given message after a specified interval.

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);

매개 변수Parameters

_Ms_Ms
지정 된 메시지의 다운스트림 전파를 시작 하기 위해 호출 후 경과 해야 하는 시간 (밀리초)입니다.The number of milliseconds that must elapse after the call to start for the specified message to be propagated downstream.

valuevalue
타이머가 경과할 때 다운스트림에 전파 되는 값입니다.The value which will be propagated downstream when the timer elapses.

_PTarget_PTarget
타이머가 메시지를 전파 하는 대상입니다.The target to which the timer will propagate its message.

_Repeating_Repeating
True 이면 타이머가 정기적으로 밀리초 마다 발생 합니다 _Ms .If true, indicates that the timer will fire periodically every _Ms milliseconds.

_Scheduler_Scheduler
Scheduler메시징 블록의 전파 태스크가 예약 된 개체가 timer 예약 됩니다.The Scheduler object within which the propagation task for the timer messaging block is scheduled is scheduled.

_ScheduleGroup_ScheduleGroup
ScheduleGroup 메시징 블록의 전파 작업이 예약되는 timer 개체입니다.The ScheduleGroup object within which the propagation task for the timer messaging block is scheduled. 사용된 Scheduler 개체는 일정 그룹에서 암시됩니다.The Scheduler object used is implied by the schedule group.

설명Remarks

런타임은 _Scheduler 또는 _ScheduleGroup 매개 변수를 지정하지 않는 경우 기본 스케줄러를 사용합니다.The runtime uses the default scheduler if you do not specify the _Scheduler or _ScheduleGroup parameters.

~ 타이머~timer

메시징 블록을 소멸 시킵니다 timer .Destroys a timer messaging block.

~timer();

참고 항목See also

concurrency 네임 스페이스concurrency Namespace