timer

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.

NotaNota

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.

Imports System
Imports System.Threading

Public Class Example
    Private Shared ticker As Timer

    Public Shared Sub TimerMethod(state As Object)
        Console.Write(".")
    End Sub

    Public Shared Sub Main()
        ticker = New Timer(AddressOf TimerMethod, Nothing, 1000, 1000)

        Console.WriteLine("Press the Enter key to end the program.")
        Console.ReadLine()
    End Sub
End Class
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();
    }
}
using namespace System;
using namespace System::Threading;

public ref class Example
{
private:
    static Timer^ ticker;

public:
    static void TimerMethod(Object^ state)
    {
        Console::Write(".");
    }

    static void Main()
    {
        TimerCallback^ tcb =
           gcnew TimerCallback(&TimerMethod);

        ticker = gcnew Timer(tcb, nullptr, 1000, 1000);

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

int main()
{
    Example::Main();
}

Vedere anche

Riferimenti

Timer

Altre risorse

Oggetti e funzionalità del threading