Angella Andrea - Italian Blog

Infinita passione per lo sviluppo software !
posts - 133, comments - 216, trackbacks - 9

My Links

News

MIT OpenCourseWare: I'm invested Wikipedia Affiliate Button


Sto leggendo:

Archives

Post Categories

Siti web realizzati

Siti web tecnici

[70-536] - Timer

Area di riferimento

- Implementing service processes, threading, and application domains in a .NET Framework application
   - Develop multithreaded .NET Framework applications
      - Timer class, TimerCallback delegate



Timer

L'oggetto Timer del namespace System.Threading è il miglior timer da usare quando si vogliono eseguire in background dei task periodici.

Quando si costruisce una istanza di un oggetto Timer si specificano le seguenti informazioni:

  • Metodo da richiamare periodicamente (deve rispettare la firma del delegate TimerCallback )
  • Informazioni da passare al metodo di callback
  • Tempo di attesa prima di invocare per la prima volta il metodo di callback
  • Periodo di tempo tra due chiamate consecutive del metodo di callback

Ecco un esempio di utilizzo:

class Program
{
    static void Main(string[] args)
    {
        // Costruisco un nuovo timer
        Timer timer = new Timer(timer_callback, "Ciao a tutti", 1000, 2000);

        Console.WriteLine("{0}: {1}", DateTime.Now.ToLongTimeString(), "Creazione Timer");

        Console.ReadKey();

        // Rilascia le risorse allocate al Timer.
        // (necessario per evitare che il garbage collector distrugga l'oggetto timer non più referenziato)
        timer.Dispose();
    }

    // Metodo che sarà eseguito periodicamente
    static void timer_callback(object state)
    {
        string messaggio = state as string;
        Console.WriteLine("{0}: {1}", DateTime.Now.ToLongTimeString(), messaggio);
    }
}


Output del programma:

22.43.27: Creazione Timer
22.43.28: Ciao a tutti
22.43.30: Ciao a tutti
22.43.32: Ciao a tutti
22.43.34: Ciao a tutti
22.43.36: Ciao a tutti

Print | posted on venerdì 4 gennaio 2008 00:47 | Filed Under [ Exam 70-536 Application Development Foundation ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET