DispatcherTimer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um temporizador integrado à Dispatcher fila que é processado em um intervalo de tempo especificado e em uma prioridade especificada.
public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
- Herança
-
DispatcherTimer
Exemplos
O exemplo a CommandManagerseguir cria um DispatcherTimer que atualiza o conteúdo de um Label e chama o InvalidateRequerySuggested método no .
Um DispatcherTimer objeto chamado dispatcherTimer é criado. O manipulador dispatcherTimer_Tick de eventos é adicionado ao Tick evento de dispatcherTimer. O Interval é definido como 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 manipulador de eventos atualiza um Label que exibe o segundo atual e chama InvalidateRequerySuggested o 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
Comentários
O DispatcherTimer é reavaliado na parte superior de cada Dispatcher loop.
Não há garantia de que os temporizadores sejam executados exatamente quando o intervalo de tempo ocorrer, mas eles têm a garantia de não serem executados antes que o intervalo de tempo ocorra. Isso ocorre porque DispatcherTimer as operações são colocadas na Dispatcher fila, como outras operações. Quando a DispatcherTimer operação é executada, depende dos outros trabalhos na fila e de suas prioridades.
Se um System.Timers.Timer for usado em um aplicativo WPF, vale a pena observar que o System.Timers.Timer é executado em um thread diferente do thread da interface do usuário. Para acessar objetos no thread da interface do usuário (interface do usuário), é necessário postar a operação no Dispatcher thread da interface do usuário usando Invoke ou BeginInvoke. Os motivos para usar um DispatcherTimer em vez de um System.Timers.Timer são que as DispatcherTimer execuções no mesmo thread que o Dispatcher e um DispatcherPriority pode ser definido no DispatcherTimer.
Um DispatcherTimer manterá um objeto ativo sempre que os métodos do objeto estiverem associados ao temporizador.
Construtores
| Nome | Description |
|---|---|
| DispatcherTimer() |
Inicializa uma nova instância da classe DispatcherTimer. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Inicializa uma nova instância da DispatcherTimer classe que é executada na prioridade especificada Dispatcher . |
| DispatcherTimer(DispatcherPriority) |
Inicializa uma nova instância da DispatcherTimer classe que processa eventos de temporizador na prioridade especificada. |
| DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Inicializa uma nova instância da DispatcherTimer classe que usa o intervalo de tempo, a prioridade, o manipulador de eventos e Dispatcher. |
Propriedades
| Nome | Description |
|---|---|
| Dispatcher |
Obtém o Dispatcher associado a isso DispatcherTimer. |
| Interval |
Obtém ou define o período de tempo entre tiques de temporizador. |
| IsEnabled |
Obtém ou define um valor que indica se o temporizador está em execução. |
| Tag |
Obtém ou define um objeto de dados definido pelo usuário. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Start() |
Inicia o DispatcherTimer. |
| Stop() |
Interrompe o DispatcherTimer. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Eventos
| Nome | Description |
|---|---|
| Tick |
Ocorre quando o intervalo do temporizador é decorrido. |