, если мое понимание того, что вы хотите правильно (показывать изображения в определенной последовательности), то для контура может не работать так, как вы хотите. таймер не будет блокировать цикл - так оно и было предусмотрено.
* вы не хотели бы блокировать свой интерфейс таким образом (или вообще).
Поскольку вы уже назначили таймер для каждого изображения, просто отделите назначение интервала от начала до двух циклов for-loops.
List<Timer> timers = new List<Timer>();
//i'm assuming that TimeImage is a list?
for (int i=1; i<=TimeImage.Count(); i++)
{
Timer timer1 = new Timer();
timer1.Tick += new EventHandler(showImage);
timer1.Interval = i * 1000;
timers.add(timer1);
//note showimage should know which particular image is to be loaded
//showimage should also stop the last timer that was triggered
}
foreach (Timer atimer in timers)
{
atimer.Start();
}
Вы хотите запустить второй таймер после первого завершения и так далее? Является ли ваш таймер повторяющимся таймером? Если да, то каково определение завершения? –
После того, как первый раз закончен – Pepinho
Я думаю, что выбор правильного «Таймера» -класса может решить вашу проблему. Если вы новичок в этой теме, это может быть хорошим началом: https://msdn.microsoft.com/en-us/magazine/cc164015.aspx. Для вашего сценария возможно, что «System.Threading.Timer» может работать с параметром без интервала (означает, что он вызывается только один раз). Поскольку я не полностью понимаю вашу цель, возможно, выполнение времени в другом потоке и использование «Thread.Sleep» в этом потоке может дать вам тот же результат. –