foreach 循环中的计时器

Timer in a foreach loop

我有一个 foreach 循环,它将遍历数组中的每个字符串,我想制作一个计时器,每 100 毫秒计时一次,当它计时时,它转到数组中的另一个字符串,例如:

滴答 100 毫秒 thepath = Assets/Star/Star_00001.png 滴答 100 毫秒 thepath = Assets/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;
            }
    }

我应该如何处理和执行此操作? (对不起,如果你不明白,我很难解释自己,如果你有进一步的问题,请评论)

您可以使用 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);
       }
}