【发布时间】:2022-01-24 10:59:31
【问题描述】:
static void Main()
{
int timersLength = 4;
int interval = 1000;
int[] timerNum = new int[timersLength];
Timer[] timers = new Timer[timersLength];
for (int i = 0; i < timersLength; i++)
{
timerNum[i] = i;
timers[i] = new Timer(interval);
//Console.WriteLine($"Timer {timerNum[i]} is running");
timers[i].Elapsed += (o, e) =>
{
Console.WriteLine($"Timer {timerNum[i]} is running");
};
}
foreach (Timer timer in timers)
timer.Start();
Console.ReadKey();
}
每当我尝试对 Timer 数组进行倒计时时,它都会给出一个
"System.IndexOutOfRangeException: '索引超出了数组的范围。"
在经过的行上:
timers[i].Elapsed += (o, e) =>
{
Console.WriteLine($"Timer {timerNum[i]} is running");
};
代码看起来不错,但由于某种原因它给出了这个错误。
【问题讨论】:
标签: c# arrays timer integer system.timers.timer