Costumo ver mencionado que Thread.Sleep();
não deve ser usado, mas não consigo entender por que isso acontece. Se Thread.Sleep();
puder causar problemas, existem soluções alternativas com o mesmo resultado que seriam seguras?
por exemplo.
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
outro é:
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:
ou seja, provavelmente existe uma solução melhor para seus problemas do que Sleep
.
goto
, que é mais um cheiro de código do que um cheiro de design. Não há nada errado com um compilador inserindo goto
s no seu código: o computador não fica confuso. Mas Thread.Sleep
não é exatamente o mesmo; compiladores não inserem essa chamada e isso tem outras consequências negativas. Mas sim, o sentimento geral de que usá-lo está errado, porque quase sempre existe uma solução melhor, certamente está correta.
sleep()
em código (ou testes) um filhote de cachorro morre