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。

dueTimeperiod 值中的毫秒数为负数,不等于 Infinite或大于 MaxValue

注解

回调参数指定的委托在 dueTime 运行后调用一次,之后每次 period 时间间隔都用完。

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

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

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

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 捕获与 ITimer 一起用于每次调用 callback 时使用的 ExecutionContext 和存储。 可以使用 SuppressFlow()取消该捕获。

适用于