2016-11-07 2 views
0

foreach 루프를 느리게하려면 gif를 표시 할 수 있지만 foreach 루프는 매우 빠르다. 마지막 하나만 제외하면 gif가 표시됩니다.모든 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

나는 창 형태로 작동하도록 솔루션을 업데이트 요청으로 당신은이 같은 단어 문자열 목록이 가정 이런 식으로 작업을 수행 할 수 있습니다

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

문자열 목록의 끝에 도달하면 어떨까요? 이것은 처음으로 목록을 통해 예외를 throw합니다. – EJoshuaS

+1

yep 편집 된 감사합니다. 또한 원래 게시물에서 타이머를 시작하는 것을 잊어 버렸습니다. 이제는 작동해야합니다. –

+0

예,이 문제를 해결해야합니다. 또한 OP에서 "내 주변에있는 것처럼"할 수 있습니다. 그가 이미지를 계속해서 반복하고 싶거나 여기에서 한 것처럼 한 번만 표시하고 싶다면 타이머를 멈출 수 있습니다. – EJoshuaS

관련 문제