簡體   English   中英

在繼續for循環之前,如何等待計時器過去?

[英]How do I wait for a timer to elapse before continuing a for loop?

我正在使用常規的foreach循環,我想等到計時器完成后再繼續下一種情況。 我怎么做?

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

如果我對您想要的內容的理解是正確的(按特定順序顯示圖像),則for循環可能無法按您想要的方式工作。 計時器不會阻塞循環-無論如何,這是預期的方式。

*您不想以這種方式(或根本不)阻止用戶界面。

由於您已經為每個圖像分配了一個計時器,因此只需將間隔的分配從頭開始分成兩個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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM