2016-11-07 4 views
0

foreachループを遅くしたいので、私は完了するのに約2秒かかりますが、gifを表示できますが、foreachループは非常に高速です。私はすべてのGIFSを表示することができます

foreach (string s in words) 
     { 
      path = Dictionary.wordchecker(s);//Checks words for Animation 
      pictureBox1.Image = Image.FromFile(Directory.GetCurrentDirectory() + "\\images\\" + path + ".gif"); 
      textBox1.Text = s; 

     } 
+1

'Task.Delayを( ) 'おそらく?もっと情報がなければ、私たちは本当に知ることができません。 – David

+0

GIFを表示するために何を使用していますか? –

+0

画像をどのように表示しているかを強調するコードをさらに表示してください。 – sr28

答えて

2

私は、Windowsフォームで動作するようにソリューションを更新し、要求通り、 は、あなたがこのような単語の文字列のリストを持っていると仮定すると、このようにそれを行うことができます。

System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); 
List<string> words = new List<string>(); 

    int cur = 0; 

    public static int Main() 
    { 
     //2000 is two seconds you can adjust to the amount you need 
     timer.Interval = 2000; 
     timer.Tick += timerTick; 
     timer.Start(); 
    } 

    private void timerTick(object sender, object e) 
    { 
     if (cur < words.Count) 
     { 
      path = Dictionary.wordchecker(words[cur]);//Checks words for Animation 
      pictureBox1.Image = Image.FromFile(Directory.GetCurrentDirectory() + "\\images\\" + path + ".gif"); 
      textBox1.Text = s; 
      cur++; 
     } 
     else 
     { 
      timer.Stop(); 
     } 
    } 
+1

文字列のリストの最後にはどうなりますか?これにより、最初のリストの後に例外がスローされます。 – EJoshuaS

+1

yepもともとの投稿で感謝しました。私はタイマーを始めるのを忘れました。今でも動作します:) –

+0

はい、これで問題は解決するはずです。また、OPは私の回答にあるように "ラップアラウンド"彼が画像を連続してループしたい場合や、ここでやっているように一度しか表示したくない場合は、タイマーを止めることができます。 – EJoshuaS

関連する問題