我正在尝试创建一个事件,该事件在一定时间发生变化时执行函数。计时器是由另一个代码完成的,它应该调用 Plus(1),但这会改变所有计时器(如果我创建多个)吗?而且这段代码实际上并没有工作。
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() { }
}
}
编辑:我不想使用 .net 计时器,我想创建自己的计时器。
最佳答案
只需使用 .net 计时器,如下所示:
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(aTimer_Elapsed);
aTimer.Interval = 1000; //here you can set your interval
aTimer.Start();
在这里您可以捕获事件并调用其他方法:
void aTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//TODO: call your method like "Plus"
}
关于c# - 在c#中创建时间事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464999/