Esporta (0) Stampa
Espandi tutto

Timer

Aggiornamento: novembre 2007

I timer sono oggetti lightweight che consentono di specificare un delegato da chiamare a un intervallo di tempo specificato. Un thread nel pool di thread esegue l'operazione di attesa.

L'utilizzo della classe Timer è abbastanza semplice. Si crea un Timer, che passa un delegato TimerCallback al metodo di callback, un oggetto che rappresenta lo stato che verrà passato al callback, un tempo di generazione iniziale e un tempo che rappresenta il periodo tra le chiamate di callback. Per annullare un timer in sospeso, chiamare la funzione Timer.Dispose.

Nota:

Esistono altre due classi timer. La classe System.Windows.Forms.Timer, progettata per essere utilizzata in contesti di interfaccia utente, rappresenta un controllo che funziona con le finestre di progettazione visiva e genera eventi nel thread dell'interfaccia utente. La classe System.Timers.Timer deriva da Component e può quindi essere utilizzata con le finestre di progettazione visiva. Anche questa classe genera eventi, ma in un thread di ThreadPool. La classe System.Threading.Timer crea i callback in un thread ThreadPool e non utilizza il modello basato su eventi. A differenza di altri timer, fornisce anche un oggetto di stato al metodo di callback. Questa classe è totalmente lightweight.

Nell'esempio di codice riportato di seguito viene avviato un timer che inizia il conteggio dopo un secondo (1.000 millisecondi) e scatta ogni secondo finché non si preme INVIO. La variabile in cui è contenuto il riferimento al timer è un campo a livello di classe, per evitare che il timer venga sottoposto a Garbage Collection mentre è ancora in esecuzione. Per ulteriori informazioni sulla Garbage Collection aggressiva, vedere KeepAlive.

using System;
using System.Threading;

public class Example
{   
   private static Timer ticker;
   
   public static void TimerMethod(Object state)
   {
      Console.Write(".");
   }
   
   public static void Main()
   {
      ticker = new Timer(TimerMethod, null, 1000, 1000);

      Console.WriteLine("Press the Enter key to end the program.");
      Console.ReadLine();
   } 
}

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft