나는 종종 Thread.Sleep();
사용해서는 안된다고 언급하는 것을 보았지만 이것이 왜 그렇게되었는지 이해할 수 없습니다. Thread.Sleep();
문제를 일으킬 수 있다면 동일한 결과를 가져도 안전 할 수있는 대체 솔루션이 있습니까?
예.
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
다른 하나는 :
while (true)
{
string[] images = Directory.GetFiles(@"C:\Dir", "*.png");
foreach (string image in images)
{
this.Invoke(() => this.Enabled = true);
pictureBox1.Image = new Bitmap(image);
Thread.Sleep(1000);
}
}
goto:
아마도 당신의 문제에 대한 더 나은 해결책이있을 것 같다고 말하고 싶습니다 Sleep
.
goto
더 디자인 냄새보다 코드 냄새처럼이다. goto
코드에 s를 삽입하는 컴파일러에는 문제 가 없습니다. 컴퓨터는 혼동되지 않습니다. 그러나 Thread.Sleep
정확히 동일하지는 않습니다. 컴파일러는 해당 호출을 삽입하지 않으며 다른 부정적인 결과를 초래합니다. 그러나 예, 거의 항상 더 나은 해결책이 있기 때문에 그것을 사용하는 것이 잘못되었다는 일반적인 감정은 확실히 옳습니다.
sleep()
코드를 입력 (또는 테스트) 할 때마다 강아지가 죽습니다