Gå til indholdet

N283A Forstå delegates (Timer)

Dette er en indledende opgave i brugen af delegates - se bort fra syntax, det skal bare fungere. Opgaven er mere at få en ide om hvad der foregår end at forstå selve koden.

  • Du skal skabe en konsol app der anvender en System.Timers.Timer til at udføre en handling hvert sekund. Handlingen skal være at udskrive den nuværende tid på konsollen.
  • Brug System.Timers.Timer, og bind en metode til Elapsed-hændelsen. Brug evt. følgende skabelon kode
  • Prøv følgende kode og se hvad der sker, når timeren udløber hvert sekund
using System;
using System.Timers;

class Program
{
    static void Main(string[] args)
    {
        Timer timer = new Timer(1000); // Timer sat til at udløbe hvert sekund (1000 ms)
        timer.Elapsed += OnTimedEvent;
        timer.AutoReset = true;
        timer.Enabled = true;

        Console.WriteLine("Timer startet. Tryk 'Enter' for at stoppe.");
        Console.ReadLine();
    }

    private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
        Console.WriteLine("Nuværende tid: " + DateTime.Now.ToString("HH:mm:ss"));
    }
}

Læg mærke til at OnTimedEvent-metoden bindes til Elapsed-delegaten med += syntaksen. Dette skyldes, at der i virkeligheden er tale om et event, som bruges til at håndtere periodiske handlinger med en timer.