다음을 통해 공유


TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 메서드

정의

값을 사용하여 TimeSpan 시간 간격을 측정하는 새 ITimer instance 만듭니다.

public:
 virtual System::Threading::ITimer ^ CreateTimer(System::Threading::TimerCallback ^ callback, System::Object ^ state, TimeSpan dueTime, TimeSpan period);
public virtual System.Threading.ITimer CreateTimer (System.Threading.TimerCallback callback, object? state, TimeSpan dueTime, TimeSpan period);
abstract member CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
override this.CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
Public Overridable Function CreateTimer (callback As TimerCallback, state As Object, dueTime As TimeSpan, period As TimeSpan) As ITimer

매개 변수

callback
TimerCallback

타이머가 실행될 때 실행할 메서드를 나타내는 대리자입니다. 이전 콜백이 여전히 처리되는 동안 타이머가 다시 실행될 경우 두 스레드에서 동시에 호출될 수 있으므로 메서드를 다시 입력해야 합니다.

state
Object

에 전달할 개체입니다 callback. 이 값은 null이 될 수 있습니다.

dueTime
TimeSpan

가 호출되기까지 callback 지연할 시간입니다. 타이머가 시작되지 않도록 하려면 InfiniteTimeSpan를 지정합니다. 타이머를 즉시 시작하려면 Zero를 지정합니다.

period
TimeSpan

callback 호출 사이의 시간 간격입니다. 정기적으로 신호를 보내지 않도록 하려면 InfiniteTimeSpan를 지정합니다.

반환

새로 만든 ITimer 인스턴스입니다.

예외

callbacknull입니다.

또는 값의 밀리초 수가 음수이고 와 같지 Infinite않거나 Int32.MaxValue보다 큽니다.dueTimeperiod

설명

콜백 매개 변수에 의해 지정된 대리자는 경과 후 dueTime 한 번 호출되고 그 이후에는 시간 간격이 period 경과할 때마다 호출됩니다.

가 0이면 dueTime 콜백이 즉시 호출됩니다. 가 -1밀리초 callback 인 경우 dueTime 는 호출되지 않고 타이머는 사용하지 않도록 설정되지만 메서드를 호출 Change(TimeSpan, TimeSpan) 하여 다시 사용하도록 설정할 수 있습니다.

가 0 또는 -1밀리초이고 dueTime 양수 callback 이면 period 가 한 번 호출됩니다. 타이머의 주기적 동작은 사용하지 않도록 설정되지만 메서드를 사용하여 Change(TimeSpan, TimeSpan) 다시 사용하도록 설정할 수 있습니다.

반환된 ITimer instance 타이머가 아직 예약된 동안 암시적으로 루팅됩니다.

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan)ExecutionContext 를 캡처하고 호출할 때마다 호출 callback 에 사용하기 위해 와 함께 ITimer 를 저장합니다. 해당 캡처는 를 사용하여 SuppressFlow()표시하지 않을 수 있습니다.

적용 대상