DispatcherTimer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |