DispatcherTimer Clase

Definición

Temporizador integrado en la cola de Dispatcher que se procesa en un intervalo de tiempo especificado con una prioridad especificada.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Herencia
DispatcherTimer

Ejemplos

En el ejemplo siguiente se crea un DispatcherTimer objeto que actualiza el contenido de y Label llama al InvalidateRequerySuggested método en .CommandManager

Se crea un DispatcherTimer objeto denominado dispatcherTimer . El controlador dispatcherTimer_Tick de eventos se agrega al Tick evento de dispatcherTimer. Interval se establece en 1 segundo mediante un TimeSpan objeto y se inicia el temporizador.

//  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()

El Tick controlador de eventos actualiza un Label objeto que muestra el segundo actual y llama a InvalidateRequerySuggested en .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

Comentarios

DispatcherTimer Se vuelve a evaluar en la parte superior de cada Dispatcher bucle.

No se garantiza que los temporizadores se ejecuten exactamente cuando se produce el intervalo de tiempo, pero se garantiza que no se ejecuten antes de que se produzca el intervalo de tiempo. Esto se debe a que DispatcherTimer las operaciones se colocan en la Dispatcher cola como otras operaciones. Cuando la DispatcherTimer operación se ejecuta depende de los demás trabajos de la cola y sus prioridades.

Si se usa en System.Timers.Timer una aplicación WPF, merece la pena tener en cuenta que se System.Timers.Timer ejecuta en un subproceso diferente al subproceso de la interfaz de usuario (UI). Para tener acceso a objetos en el subproceso de la interfaz de usuario (UI), es necesario publicar la operación en el Dispatcher subproceso de la interfaz de usuario (UI) mediante Invoke o BeginInvoke. Los motivos para usar un en DispatcherTimer lugar de a System.Timers.Timer son que se DispatcherTimer ejecuta en el mismo subproceso que y Dispatcher se puede establecer en DispatcherTimerDispatcherPriority .

Un DispatcherTimer objeto mantendrá activo un objeto cada vez que los métodos del objeto se enlazan al temporizador.

Constructores

DispatcherTimer()

Inicializa una nueva instancia de la clase DispatcherTimer.

DispatcherTimer(DispatcherPriority)

Inicializa una nueva instancia de la clase DispatcherTimer que procesa los eventos del temporizador con la prioridad especificada.

DispatcherTimer(DispatcherPriority, Dispatcher)

Inicializa una nueva instancia de la clase DispatcherTimer que se ejecuta en el objeto Dispatcher especificado con la prioridad especificada.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Inicializa una nueva instancia de la clase DispatcherTimer que usa el intervalo de tiempo, prioridad, controlador de eventos y Dispatcher especificados.

Propiedades

Dispatcher

Obtiene el objeto Dispatcher asociado a DispatcherTimer.

Interval

Obtiene o establece el período de tiempo entre los pasos del temporizador.

IsEnabled

Obtiene o establece un valor que indica si el temporizador está en ejecución.

Tag

Obtiene o establece un objeto de datos definido por el usuario.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Start()

Inicia DispatcherTimer.

Stop()

Detiene DispatcherTimer.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

Tick

Se produce cuando ha transcurrido el intervalo del temporizador.

Se aplica a