在继续for循环之前,如何等待计时器结束?

时间:2015-02-12 08:08:14

标签: c# timer

我正在使用常规的foreach循环,我想等到计时器结束然后继续下一个案例。我该怎么做?

foreach (int i in TimeImage)
{
    Timer timer1 = new Timer();
    timer1.Tick += new EventHandler(showImage);
    timer1.Interval = i * 1000;
    timer1.Start();
    showImage();
}

1 个答案:

答案 0 :(得分:0)

如果我对你想要的东西的理解是正确的(以特定顺序显示图像)那么for循环可能不会按照你想要的方式工作。计时器不会阻止循环 - 无论如何都是这样的。

*您不希望以这种方式阻止您的UI(或根本不阻止)。

因为您已经为每个图像分配了一个计时器,所以只需将间隔的分配从开始分成两个for循环。

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();
}