1.timer简介
可参考:https://blog.csdn.net/gangzhucoll/article/details/93744022###
2.timer传参
2.1非匿名方法
//如果需要定时器传参,可采用匿名方法
private static System.Timers.Timer aTimer;
public static void Main()
{
int a = 12345;
aTimer = new System.Timers.Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler((s, e) => OnTimedEvent(s, e, a));
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e, int a)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
2.2 匿名方法
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Enabled = true;
var test = "test";
timer.Elapsed += (o1, e1) => {
Console.WriteLine(test);
};
Console.ReadLine();
2.3 写一个Timer的类,里面定义需要传递的参数。
class MyTimer : System.Timers.Timer
{
int id;
public int GetId()
{
return id;
}
public void SetId(int value)
{
id = value;
}
}
static void taskTime_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
MyTimer t = (MyTimer)sender;
Console.WriteLine(t.GetId());
Console.ReadLine();
t.Enabled = false;
t.Close();
}