Classe DispatcherTimer (System.Windows.Threading)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe DispatcherTimer
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Timer integrato nella coda Dispatcher che viene elaborato in un intervallo di tempo specificato e con una priorità specificata.

Gerarchia di ereditarietà

System.Object
  System.Windows.Threading.DispatcherTimer

Spazio dei nomi:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)
XMLNS per XAML: Non mappato a un xmlns.
Sintassi

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

Il tipo DispatcherTimer espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico DispatcherTimer() Inizializza una nuova istanza della classe DispatcherTimer.
Metodo pubblico DispatcherTimer(DispatcherPriority) Inizializza una nuova istanza della classe DispatcherTimer che elabora gli eventi del timer con la priorità specificata.
Metodo pubblico DispatcherTimer(DispatcherPriority, Dispatcher) Inizializza una nuova istanza della classe DispatcherTimer che viene eseguita sull'oggetto Dispatcher specificato con la priorità indicata.
Metodo pubblico DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) Inizializza una nuova istanza della classe DispatcherTimer che utilizza l'intervallo di tempo, la priorità, il gestore eventi e l'oggetto Dispatcher specificati.
In alto
Proprietà

  Nome Descrizione
Proprietà pubblica Dispatcher Ottiene l'oggetto Dispatcher associato a questo oggetto DispatcherTimer.
Proprietà pubblica Interval Ottiene o imposta il periodo tra unità di tempo del timer.
Proprietà pubblica IsEnabled Ottiene o imposta un valore che indica se il timer è in esecuzione.
Proprietà pubblica Tag Ottiene o imposta un oggetto dati definiti dall'utente.
In alto
Metodi

  Nome Descrizione
Metodo pubblico Equals(Object) Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico Start Avvia DispatcherTimer.
Metodo pubblico Stop Arresta DispatcherTimer.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto
Eventi

  Nome Descrizione
Evento pubblico Tick Si verifica al termine dell'intervallo del timer.
In alto
Note

L'oggetto DispatcherTimer viene rivalutato all'inizio di ogni ciclo Dispatcher.

Non è garantito che i timer vengano eseguiti esattamente quando si verifica l'intervallo di tempo, ma certamente non vengono eseguiti prima. Le operazioni DispatcherTimer vengono infatti inserite nella coda Dispatcher come le altre operazioni. Il momento in cui viene eseguita l'operazione DispatcherTimer dipende dagli altri processi presenti nella coda e dalle relative priorità.

Se un oggetto System.Timers.Timer viene utilizzato in un'applicazione WPF, si noti che l'oggetto System.Timers.Timer viene eseguito in un thread diverso dal thread dell'user interface (UI). Per accedere agli oggetti nel thread dell'user interface (UI), è necessario inserire l'operazione nell'oggetto Dispatcher del thread dell'user interface (UI) utilizzando Invoke o BeginInvoke. È preferibile utilizzare un oggetto DispatcherTimer anziché un oggetto System.Timers.Timer perché l'oggetto DispatcherTimer viene eseguito nello stesso thread di Dispatcher ed è possibile impostare un oggetto DispatcherPriority su DispatcherTimer.

Un oggetto DispatcherTimer manterrà terrà attivo un oggetto ogni volta che i relativi metodi vengono associati al timer.

Esempi

Nell'esempio riportato di seguito viene creato un oggetto DispatcherTimer che aggiorna il contenuto di Label e chiama il metodo InvalidateRequerySuggested su CommandManager.

Viene creato un oggetto DispatcherTimer denominato dispatcherTimer. All'evento Tick di dispatcherTimer viene aggiunto il gestore eventi dispatcherTimer_Tick. La proprietà Interval viene impostata su 1 secondo tramite un oggetto TimeSpan e il timer viene avviato.

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


Il gestore eventi Tick aggiorna un oggetto Label che visualizza il secondo corrente, quindi chiama InvalidateRequerySuggested su 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();
}


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche

Riferimenti

Altre risorse