DispatcherTimer Clase

Definición

Temporizador integrado en la Dispatcher cola que se procesa en un intervalo de tiempo especificado y en 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 InvalidateRequerySuggested a 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 un System.Timers.Timer en una aplicación de WPF, vale la pena tener en cuenta que el System.Timers.Timer se ejecuta en un subproceso diferente del 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. Las razones para usar un DispatcherTimer objeto en lugar de un System.Timers.Timer son que se DispatcherTimer ejecuta en el mismo subproceso que Dispatcher y se puede establecer en DispatcherPriority .DispatcherTimer

Un DispatcherTimer mantendrá activo un objeto siempre que los métodos del objeto estén enlazados al temporizador.

Constructores

Nombre Description
DispatcherTimer()

Inicializa una nueva instancia de la clase DispatcherTimer.

DispatcherTimer(DispatcherPriority, Dispatcher)

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

DispatcherTimer(DispatcherPriority)

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

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

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

Propiedades

Nombre Description
Dispatcher

Obtiene el Dispatcher objeto asociado a este DispatcherTimerobjeto .

Interval

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

IsEnabled

Obtiene o establece un valor que indica si el temporizador se está ejecutando.

Tag

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

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Start()

Inicia el DispatcherTimer.

Stop()

Detiene el DispatcherTimerobjeto .

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

Nombre Description
Tick

Se produce cuando ha transcurrido el intervalo del temporizador.

Se aplica a