Partilhar via


TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) Método

Definição

Cria uma nova instância de ITimer, usando valores TimeSpan para medir intervalos de tempo.

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

Parâmetros

callback
TimerCallback

Um delegado que representa um método a ser executado quando o temporizador é acionado. O método especificado para retorno de chamada deve ser reentrante, pois pode ser invocado simultaneamente em dois threads se o temporizador for acionado novamente antes ou enquanto um retorno de chamada anterior ainda estiver sendo tratado.

state
Object

Um objeto a ser passado para o callback. Isso pode ser nulo.

dueTime
TimeSpan

A quantidade de tempo a ser atrasada antes que callback seja invocada. Especifique InfiniteTimeSpan para impedir que o temporizador seja iniciado. Especifique Zero para iniciar o temporizador imediatamente.

period
TimeSpan

O intervalo de tempo entre invocações de callback. Especifique InfiniteTimeSpan para desabilitar a sinalização periódica.

Retornos

A instância de ITimer recém-criada.

Exceções

callback é nulo.

O número de milissegundos no valor de dueTime ou period é negativo e não igual a Infinite, ou é maior que MaxValue.

Comentários

O delegado especificado pelo parâmetro de retorno de chamada é invocado uma vez após dueTime decorrido e, depois disso, cada vez que o intervalo de tempo period decorrido.

Se dueTime for zero, o retorno de chamada será invocado imediatamente. Se dueTime for -1 milissegundos, callback não será invocado; o temporizador está desabilitado, mas pode ser habilitado novamente chamando o método Change(TimeSpan, TimeSpan).

Se period for 0 ou -1 milissegundos e dueTime for positivo, callback será invocado uma vez; o comportamento periódico do temporizador está desabilitado, mas pode ser habilitado novamente usando o método Change(TimeSpan, TimeSpan).

O retorno ITimer instância será implicitamente enraizado enquanto o temporizador ainda estiver agendado.

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) captura o ExecutionContext e armazena isso com o ITimer para uso ao invocar callback sempre que é chamado. Essa captura pode ser suprimida com SuppressFlow().

Aplica-se a