Share via


TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 方法

定义

创建一个新 ITimer 实例,使用 TimeSpan 值来测量时间间隔。

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

period 的值dueTime中的毫秒数为负,不等于 Infinite,或大于 Int32.MaxValue

注解

回调参数指定的委托在经过后 dueTime 调用一次,之后每次 period 时间间隔过后调用一次。

如果 dueTime 为零,则立即调用回调。 如果 dueTime 为 -1 毫秒, callback 则不调用 ;计时器已禁用,但可以通过调用 Change(TimeSpan, TimeSpan) 方法重新启用。

如果 period 为 0 或 -1 毫秒且 dueTime 为正值, callback 则调用一次;计时器的定期行为被禁用,但可以使用 方法重新启用 Change(TimeSpan, TimeSpan)

当计时器仍在计划时,返回的 ITimer 实例将隐式根目录。

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan)ExecutionContext捕获 并存储与 ITimer ,以便在每次调用时调用它时使用 callback 。 可以使用 禁止 SuppressFlow()该捕获。

适用于