Реализация событий таймера, исходя по времени в массива
У меня есть метод, который должен реализовывать нажатия в N время, находящееся в массиве. Пример кода:
public void Start()
{
IntPtr AdofaiWindow = FindWindow(null, "A Dance of Fire and Ice");
if (SetForegroundWindow(AdofaiWindow))
{
TimeInMsList[0] = 4750;
SendKeys.SendWait("e");
Task.Delay(TimeInMsList[0]).Wait();
for (int i = 1; i < TimeInMsList.Length; i++)
{
System.Threading.Timer timer = new System.Threading.Timer(Click => {
SendKeys.SendWait("e");
}, 0, 0, TimeInMsList[i]);
}
SendKeys.SendWait("e");
}
}
Массив во время выполнения программы не изменяется. Программа работает, но события выполняется не раз в время, указанное в таймере, а моментально. В чем может быть проблема? Приложение консольное. Попытка поменять dueTime на TimeInMsList[i] заканчивается тем, что программа выполняет одно нажатие и завершает работу.
Источник: Stack Overflow на русском