TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
时间间隔都用完。
如果 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()取消该捕获。