Поделиться через


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.

Число миллисекунд в значении dueTime или period отрицательно и не равно 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) записывает ExecutionContext и сохраняет ITimer для использования при вызове callback при каждом вызове. Этот захват можно отключить с помощью SuppressFlow().

Применяется к