Leggere in inglese

Condividi tramite


Timer Classe

Definizione

Implementa un timer con il quale viene generato un evento a intervalli definiti dall'utente. Questo timer è ottimizzato per l'uso in applicazioni Windows Forms e deve essere usato in una finestra.

C#
public class Timer : System.ComponentModel.Component
Ereditarietà

Esempio

Nell'esempio seguente viene implementato un semplice timer di intervallo, che imposta un allarme ogni cinque secondi. Quando si verifica l'allarme, viene MessageBox visualizzato un conteggio del numero di volte in cui l'allarme è stato avviato e richiede all'utente se il timer deve continuare a essere eseguito.

C#
public class Class1 {
    static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
    static int alarmCounter = 1;
    static bool exitFlag = false;
 
    // This is the method to run when the timer is raised.
    private static void TimerEventProcessor(Object myObject,
                                            EventArgs myEventArgs) {
       myTimer.Stop();
 
       // Displays a message box asking whether to continue running the timer.
       if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter, 
          MessageBoxButtons.YesNo) == DialogResult.Yes) {
          // Restarts the timer and increments the counter.
          alarmCounter +=1;
          myTimer.Enabled = true;
       }
       else {
          // Stops the timer.
          exitFlag = true;
       }
    }
 
    public static int Main() {
       /* Adds the event and the event handler for the method that will 
          process the timer event to the timer. */
       myTimer.Tick += new EventHandler(TimerEventProcessor);
 
       // Sets the timer interval to 5 seconds.
       myTimer.Interval = 5000;
       myTimer.Start();
 
       // Runs the timer, and raises the event.
       while(!exitFlag) {
          // Processes all the events in the queue.
          Application.DoEvents();
       }
    return 0;
    }
 }

Commenti

Viene Timer usato per generare un evento a intervalli definiti dall'utente. Questo timer di Windows è progettato per un ambiente a thread singolo in cui i thread dell'interfaccia utente vengono usati per eseguire l'elaborazione. È necessario che il codice utente disponga di una pompa di messaggi dell'interfaccia utente disponibile e funzioni sempre dallo stesso thread o esegue il marshalling della chiamata su un altro thread.

Quando si usa questo timer, usare l'evento Tick per eseguire un'operazione di polling o per visualizzare una schermata iniziale per un periodo di tempo specificato. Ogni volta che la Enabled proprietà è impostata su true e la Interval proprietà è maggiore di zero, l'evento Tick viene generato a intervalli in base all'impostazione della Interval proprietà.

Questa classe fornisce metodi per impostare l'intervallo e per avviare e arrestare il timer.

Nota

Il componente timer Windows Forms è a thread singolo ed è limitato a un'accuratezza di 55 millisecondi. Se è necessario un timer multithreading con maggiore accuratezza, usare la Timer classe nello System.Timers spazio dei nomi.

Costruttori

Timer()

Inizializza una nuova istanza della classe Timer.

Timer(IContainer)

Inizializza una nuova istanza della classe Timer insieme al contenitore specificato.

Proprietà

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Enabled

Ottiene o imposta un valore che indica se il timer è in esecuzione.

Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
Interval

Ottiene o imposta l'intervallo di tempo, in millisecondi, prima che venga generato l'evento Tick relativo all'ultima occorrenza dell'evento Tick.

Site

Ottiene o imposta l'oggetto ISite di Component.

(Ereditato da Component)
Tag

Ottiene o imposta una stringa arbitraria che rappresenta un tipo di stato dell'utente.

Metodi

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Elimina le risorse, tranne la memoria, usate dal timer.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
OnTick(EventArgs)

Genera l'evento Tick.

Start()

Avvia il timer.

Stop()

Arresta il timer.

ToString()

Restituisce una stringa che rappresenta l'oggetto Timer.

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().

(Ereditato da Component)
Tick

Si verifica quando l'intervallo specificato del timer è trascorso e il timer viene abilitato.

Si applica a

Prodotto Versioni
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10