如果我对你想要的理解是正确的(表现出一定的序列中的图像),那么for循环可能不工作,你希望它的方式。计时器不会阻止循环 - 无论如何,这是它的目的。
*您不想以这种方式(或根本)阻止您的用户界面。
由于您已经为每个图像分配一个计时器,只需将间隔从开始位置分配到两个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();
}
你的意思是第一次完成后启动第二个计时器等等?你的定时器是否重复定时器?如果是的话,完成的定义是什么? – 2015-02-12 08:16:22
第一次完成后 – Pepinho 2015-02-12 08:17:49
我猜想选择正确的“计时器”类可以解决您的问题。如果您不熟悉此主题,这可能是一个好的开始:https://msdn.microsoft.com/en-us/magazine/cc164015.aspx。对于你的情况,也许“System.Threading.Timer”可以使用指定无间隔的参数(意味着它只被调用一次)。由于我不完全理解你的目标,也许在不同的线程上执行计时,并在该线程上使用“Thread.Sleep”可能会得到相同的结果。 – 2015-02-12 09:47:02