我有两个功能。一个创建一个计时器,另一个计时器到期时执行。定时器函数需要1个附加参数(int)。我需要将它传递给行动。以下是解释该代码的代码:
public void CreateTimer(int t)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(DoAction(timer, ??, t));
timer.Interval = 4000;
timer.Enabled = true;
}
正如您所看到的,??
中有EventHandler
,我不知道,该怎么做。这是DoAction
:
public void DoAction(object sender, ElapsedEventArgs e, int l)
{
//some stuff here
}
如何发送int l
?
答案 0 :(得分:2)
您可以将lambda表达式订阅到您引用局部变量的事件。
timer.Elapsed += (s, e) => { DoAction(s, e, t); };