using System;
namespace EventsExample
{
public class MyEventArgs : EventArgs
{
public readonly int Complete;
public MyEventArgs(int index, int length)
{
Complete = (index + 1) * 100 / length;
}
}
public delegate void StartDelegate(object sender, EventArgs e);
public delegate void UpdateDelegate(object sender, MyEventArgs e);
public class MyClass
{
public event StartDelegate StartEvent;
public event UpdateDelegate UpdateEvent;
protected virtual void Start(EventArgs e)
{
if (StartEvent != null)
StartEvent(this, e);
}
protected virtual void Update(MyEventArgs e)
{
if (UpdateEvent != null)
UpdateEvent(this, e);
}
public void CountTo(int j)
{
Start(EventArgs.Empty);
for (int i = 0; i < j; i++)
{
// do stuff here
Update(new MyEventArgs(i, j));
}
}
}
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.StartEvent += new StartDelegate(myClass_Start);
myClass.UpdateEvent += new UpdateDelegate(myClass_Update);
myClass.CountTo(100);
}
private static void myClass_Start(object sender, EventArgs e)
{
Console.WriteLine("Started!");
}
private static void myClass_Update(object sender, MyEventArgs e)
{
MyEventArgs f = (MyEventArgs)e;
Console.WriteLine("{0}% complete", f.Complete);
}
}
}
Monday, July 12, 2010
Simple Events Example
This is a short example for how one could use events.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment