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 tilElapsed
-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.