-1
我有几台设备每分钟发送一次TCP或POST消息。每当设备在一小时后停止发送消息时,我需要发出警报。带事件内部参数的定时器数组
我想过为每个设备创建一个Timer并在收到消息时重新启动它。如果事件触发,则调用具有与定时器关联的设备的相应ID的方法并生成警报。
问题是我找不到将固定参数传递给定时器的方法。我试过的每一种方法都会将选定的参数替换为每个定时器的参数。
有没有更好的方法?或者哪个是将参数传递给计时器已过去的事件的正确方法?
感谢,
编辑:
此代码打印总是5,我需要它来打印1 2 3 4 5(无关紧要的顺序)
private Timer[] timers = new Timer[5];
private void button6_Click(object sendera, EventArgs ee)
{
for (int i = 0; i < timers.Length; i++)
{
timers[i] = new Timer(1000);
timers[i].Elapsed += (sender, e) => { HandleTimerElapsed(i); };
timers[i].Start();
}
}
static void HandleTimerElapsed(int i)
{
Console.WriteLine(i);
}
我们不能告诉你如何修复我们不能看到的代码。 – Plutonix
好吧我马上编辑 – Vallo
编辑,应该更清楚 – Vallo