Skip to content

Instantly share code, notes, and snippets.

@johnnykv
Created September 6, 2011 13:03
Show Gist options
  • Save johnnykv/1197479 to your computer and use it in GitHub Desktop.
Save johnnykv/1197479 to your computer and use it in GitHub Desktop.
C# events
//Johnny Vestergaard - 2011
//C# events
class Program
{
static void Main(string[] args)
{
//Opret ny instans af yawningcat
YawningCat yawningCat = new YawningCat();
//Subscribe til Yawn event på yawningCat instansen.
yawningCat.Yawn += new EventHandler(wc_Yawn);
//Start katten i sin egen tråd.
Thread wcThread = new Thread(yawningCat.WakeUpCat);
wcThread.Start();
}
//Metoden der eksekveres når katten gaber.
static void wc_Yawn(object sender, EventArgs e)
{
Console.WriteLine("Katten gabte! (event)");
}
}
public class YawningCat
{
public event EventHandler Yawn;
public void WakeUpCat()
{
Console.WriteLine("Katten er vågnet!");
//men evig træt.
while (true)
{
Thread.Sleep(1000);
OnYawn(new EventArgs());
}
}
protected virtual void OnYawn(EventArgs e)
{
//Emitter Yank eventen - men kun hvis der rent
//faktisk er nogle der lytter (observer) på den.
if (Yawn != null)
Yawn(this, e);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment