DispatcherTimer Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |