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 que é integrado à fila Dispatcher que é processada em um 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 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 no 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, é 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 o DispatcherTimer é executado no mesmo thread que o Dispatcher e um DispatcherPriority podem ser definidos no DispatcherTimer.
Um DispatcherTimer manterá um objeto ativo sempre que os métodos do objeto estiverem associados ao temporizador.
Construtores
DispatcherTimer() |
Inicializa uma nova instância da classe DispatcherTimer. |
DispatcherTimer(DispatcherPriority) |
Inicializa uma nova instância da classe DispatcherTimer que processa eventos de temporizador na prioridade especificada. |
DispatcherTimer(DispatcherPriority, Dispatcher) |
Inicializa uma nova instância da classe DispatcherTimer executada no Dispatcher especificado na prioridade especificada. |
DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Inicializa uma nova instância da classe DispatcherTimer que usa o intervalo de tempo, a prioridade, o manipulador de eventos e o Dispatcher especificados. |
Propriedades
Dispatcher |
Obtém o Dispatcher associado a este DispatcherTimer. |
Interval |
Obtém ou define o período entre os tiques do 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
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (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
Tick |
Ocorre quando termina o intervalo do temporizador. |