2015-02-14 3 views
0

У меня есть цикл foreach, который будет проходить через каждую строку в массиве, я хочу сделать таймер, который тикает каждые 100 миллисекунд, и когда он тикает, он переходит к другой строке массива, поэтому для пример:Таймер в цикле foreach

тиков 100 милисекунд thepath = Активы/Star/Star_00001.png тики 100 милисекунд thepath = Активы/Star/Star_00002.png

до сих пор у меня есть это:

private void Button7_Click(object sender, RoutedEventArgs e) 
    { 
     string[] images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png", "Star_00004.png", "Star_00005.png", "Star_00006.png", "Star_00007.png"; 
     string path = "Assets/Star/"; 

      foreach(string file in images) 
      { 
       string thepath = Path.Combine(path,file); 
       asset.Text = thepath; 
      } 
    } 

ЧАС Должен ли я подойти и сделать это? (Извините, если вы не понимаете, мне было трудно объяснить себя, если у вас есть дополнительные вопросы, просто комментарий)

ответ

3

Вы можете имитировать таймер, используя Task.Delay. Вам необходимо указать свой метод async, чтобы вы могли await внутри него:

private async void Button7_Click(object sender, RoutedEventArgs e) 
{ 
     string[] images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png", "Star_00004.png", "Star_00005.png", "Star_00006.png", "Star_00007.png"; 

     string path = "Assets/Star/"; 
     foreach(string file in images) 
     { 
      string thepath = Path.Combine(path,file); 
      asset.Text = thepath; 
      await Task.Delay(100); 
     } 
} 
Смежные вопросы