다음을 통해 공유


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

정의

TimeSpan 값을 사용하여 시간 간격을 측정하여 새 ITimer 인스턴스를 만듭니다.

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 인스턴스입니다.

예외

callback null입니다.

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

설명

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

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

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

반환 ITimer 인스턴스는 타이머가 여전히 예약된 동안 암시적으로 루팅됩니다.

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 호출할 때마다 callback 호출하는 데 사용할 ITimerExecutionContext 캡처하고 저장합니다. 해당 캡처는 SuppressFlow()사용하여 억제할 수 있습니다.

적용 대상