Compartilhar via


DispatcherTimer Classe

Definição

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.

Aplica-se a