DispatcherTimer (Clase) (System.Windows.Threading)

Cambiar vista:
Sin script
Biblioteca de clases de .NET Framework
DispatcherTimer (Clase)
Este artículo se tradujo de forma manual. Para mostrar esta página y el contenido original en inglés al mismo tiempo, cambie a Lightweight según sus preferencias de visualización.

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

Jerarquía de herencia

System.Object
  System.Windows.Threading.DispatcherTimer

Espacio de nombres:  System.Windows.Threading
Ensamblado:  WindowsBase (en WindowsBase.dll)
XMLNS para XAML: No asignado a un xmlns.
Sintaxis

Visual Basic
Public Class DispatcherTimer
C#
public class DispatcherTimer
Visual C++
public ref class DispatcherTimer
F#
type DispatcherTimer =  class end

El tipo DispatcherTimer expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público DispatcherTimer() Inicializa una nueva instancia de la clase DispatcherTimer.
Método público DispatcherTimer(DispatcherPriority) Inicializa una nueva instancia de la clase DispatcherTimer que procesa los eventos del temporizador con la prioridad especificada.
Método público DispatcherTimer(DispatcherPriority, Dispatcher) Inicializa una nueva instancia de la clase DispatcherTimer que se ejecuta en el objeto Dispatcher especificado con la prioridad especificada.
Método público 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.
Arriba
Propiedades

  Nombre Descripción
Propiedad pública Dispatcher Obtiene el objeto Dispatcher asociado a DispatcherTimer.
Propiedad pública Interval Obtiene o establece el período de tiempo entre los pasos del temporizador.
Propiedad pública IsEnabled Obtiene o establece un valor que indica si el temporizador está en ejecución.
Propiedad pública Tag Obtiene o establece un objeto de datos definido por el usuario.
Arriba
Métodos

  Nombre Descripción
Método público Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público Start Inicia DispatcherTimer.
Método público Stop Detiene DispatcherTimer.
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba
Eventos

  Nombre Descripción
Evento público Tick Se produce cuando ha transcurrido el intervalo del temporizador.
Arriba
Comentarios

DispatcherTimer se reevalúa en la parte superior de cada bucle Dispatcher.

No se garantiza que los temporizadores se ejecuten exactamente cuando finaliza el intervalo de tiempo, pero se garantiza que no se ejecutan antes de que finalice el intervalo de tiempo. Esto se debe a que las operaciones de DispatcherTimer se colocan en la cola de Dispatcher al igual que otras operaciones. El momento en que se ejecuta la operación DispatcherTimer depende de los otros trabajos en la cola y sus prioridades.

Si se usa System.Timers.Timer en una aplicación de WPF, se debe tener en cuenta que System.Timers.Timer se ejecuta en un subproceso diferente del subproceso de user interface (UI). Para tener acceso a los objetos del subproceso de user interface (UI), es necesario exponer la operación en el objeto Dispatcher del subproceso de user interface (UI) mediante Invoke o BeginInvoke. Las razones para usar DispatcherTimer en vez de System.Timers.Timer es que DispatcherTimer se ejecuta en el mismo subproceso que Dispatcher y se puede establecer un valor de DispatcherPriority en DispatcherTimer.

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

Ejemplos

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

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

Visual Basic

			'  DispatcherTimer setup
			dispatcherTimer = New Threading.DispatcherTimer()
			AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
			dispatcherTimer.Interval = New TimeSpan(0,0,1)
			dispatcherTimer.Start()


C#

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,1);
dispatcherTimer.Start();


El controlador de eventos Tick actualiza un objeto Label que muestra el segundo actual y llama a InvalidateRequerySuggested en CommandManager.

Visual Basic

		'  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


C#

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


Información de versión

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1
Plataformas

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también

Referencia

Otros recursos