I am trying to create an event that executes a function when a certain amount of time has changed. The timer is done by another code, it’s supposed to call Plus(1), but will that change all timers (if I create multiple)? And this code is not actually working.
namespace @event
{
class Program
{
static void Main(string[] args)
{
Tick tijd = new Tick();
tijd.interval = 10;
tijd.TijdVeranderd += new EventHandler(Uitvoeren);
dynamic func = new Tick();
for (int i = 0; i < 100; i++)
{
func.Plus(1);
}
Console.ReadLine();
}
static void Uitvoeren(object sender, EventArgs e)
{
Console.WriteLine("Uitgevoerd!");
}
}
public class Tick
{
public event EventHandler TijdVeranderd;
public int interval;
private int tijd;
public void Plus(int i)
{
tijd += 1;
}
public int Verander
{
get { return this.tijd; }
set
{
this.tijd = value;
if (tijd == interval)
{
if (this.TijdVeranderd != null)
this.TijdVeranderd(this, new EventArgs());
tijd = 0;
}
}
}
public Tick() { }
}
}
EDIT: I don’t want to use the .net timer, I want to create my own.
There seem to be a couple of errors in your code:
First of all, in
Main, you are callingPlus()on a different instance ofTickthan the one that you configured. Try usingtijd.Plus(1)instead offunc.Plus(1).Also, in the implementation of
Plus, when you increment the private variabletijd, the code associated with the propertyVeranderdoes not get executed, so no events ever fire. To quickly fix, incrementVeranderinstead oftijd.