DispatcherTimer Classe

Definição

Um temporizador integrado na Dispatcher fila que é processado num intervalo de tempo especificado e com uma prioridade especificada.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Herança
DispatcherTimer

Exemplos

O exemplo seguinte cria um DispatcherTimer que atualiza o conteúdo de um Label e chama o InvalidateRequerySuggested método no CommandManager.

Um DispatcherTimer objeto nomeado dispatcherTimer é criado. O gestor dispatcherTimer_Tick de eventos é adicionado ao Tick evento de dispatcherTimer. O Interval é definido para 1 segundo usando um TimeSpan objeto, e o temporizador é iniciado.

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
'  DispatcherTimer setup
dispatcherTimer = New Threading.DispatcherTimer()
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
dispatcherTimer.Interval = New TimeSpan(0,0,1)
dispatcherTimer.Start()

O Tick handler de eventos atualiza a Label que mostra o segundo atual, e chama InvalidateRequerySuggested ao CommandManager.

//  System.Windows.Threading.DispatcherTimer.Tick handler
//
//  Updates the current seconds display and calls
//  InvalidateRequerySuggested on the CommandManager to force 
//  the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    // Updating the Label which displays the current second
    lblSeconds.Content = DateTime.Now.Second;

    // Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested();
}
'  System.Windows.Threading.DispatcherTimer.Tick handler
'
'  Updates the current seconds display and calls
'  InvalidateRequerySuggested on the CommandManager to force 
'  the Command to raise the CanExecuteChanged event.
Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    ' Updating the Label which displays the current second
    lblSeconds.Content = Date.Now.Second

    ' Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested()
End Sub

Observações

O DispatcherTimer é reavaliado no topo de cada Dispatcher laço.

Os temporizadores não têm garantia de executar exatamente quando o intervalo de tempo ocorre, mas é garantido que não se executam antes de o intervalo de tempo ocorrer. Isto acontece porque DispatcherTimer as operações são colocadas na Dispatcher fila como outras operações. A execução da DispatcherTimer operação depende dos outros trabalhos na fila e das suas prioridades.

Se um System.Timers.Timer for usado numa aplicação WPF, vale a pena notar que o System.Timers.Timer corre numa thread diferente da thread da interface de utilizador (UI). Para aceder a objetos na thread da interface de utilizador (UI), é necessário publicar a operação na Dispatcher thread da interface de utilizador (UI) usando Invoke ou BeginInvoke. As razões para usar a DispatcherTimer em vez de a System.Timers.Timer são que as DispatcherTimer execuções no mesmo thread que e Dispatcher a DispatcherPriority podem ser definidas no DispatcherTimer.

A DispatcherTimer manterá um objeto vivo sempre que os métodos do objeto estiverem ligados ao temporizador.

Construtores

Name Description
DispatcherTimer()

Inicializa uma nova instância da DispatcherTimer classe.

DispatcherTimer(DispatcherPriority, Dispatcher)

Inicializa uma nova instância da DispatcherTimer classe que corre na especificada Dispatcher na prioridade especificada.

DispatcherTimer(DispatcherPriority)

Inicializa uma nova instância da DispatcherTimer classe que processa eventos temporizadores com a prioridade especificada.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Inicializa uma nova instância da DispatcherTimer classe que utiliza o intervalo de tempo especificado, prioridade, gestor de eventos e Dispatcher.

Propriedades

Name Description
Dispatcher

Fica associado Dispatcher a isto DispatcherTimer.

Interval

Obtém ou define o período de tempo entre os ticks do temporizador.

IsEnabled

Recebe ou define um valor que indica se o temporizador está a correr.

Tag

Obtém ou define um objeto de dados definido pelo utilizador.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Start()

Inicia o DispatcherTimer.

Stop()

Impede o DispatcherTimer.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

evento

Name Description
Tick

Ocorre quando o intervalo temporizador já passou.

Aplica-se a