A menudo veo que se menciona que Thread.Sleep();no debería usarse, pero no puedo entender por qué es así. Si Thread.Sleep();puede causar problemas, ¿hay alguna solución alternativa con el mismo resultado que sea segura?
p.ej.
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
otro es:
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:es decir, que probablemente haya una mejor solución a sus problemas que Sleep.
goto, que se parece más a un olor a código que a un olor de diseño. No hay nada de malo en que un compilador inserte gotos en su código: la computadora no se confunde. Pero Thread.Sleepno es exactamente lo mismo; los compiladores no insertan esa llamada y tiene otras consecuencias negativas. Pero sí, el sentimiento general de que usarlo es incorrecto porque casi siempre hay una mejor solución es ciertamente correcto.
sleep()código (o pruebas) muere un cachorro