在foreach循环中的计时器

时间:2015-02-14 21:56:27

标签: c# .net timer foreach

我有一个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;
            }
    }

我该如何接近并做到这一点? (对不起,如果你不明白,我发现很难解释自己,如果你有其他问题只是评论)

1 个答案:

答案 0 :(得分:4)

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