Często widzę, że wspomniano, że Thread.Sleep();
nie należy go używać, ale nie rozumiem, dlaczego tak jest. Jeśli Thread.Sleep();
może powodować problemy, czy są jakieś alternatywne rozwiązania z takim samym skutkiem, które byłyby bezpieczne?
na przykład.
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
inny to:
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:
że jest chyba lepsze rozwiązanie twoich problemów niż Sleep
.
goto
, co bardziej przypomina zapach kodu niż zapach projektu. Nie ma nic złego w tym, że kompilator wstawia goto
s do twojego kodu: komputer się nie myli. Ale Thread.Sleep
to nie jest dokładnie to samo; kompilatory nie wstawiają tego wywołania i ma to inne negatywne konsekwencje. Ale tak, ogólne przekonanie, że używanie go jest złe, ponieważ prawie zawsze istnieje lepsze rozwiązanie, jest z pewnością poprawne.
sleep()
kod (lub testy), szczeniak umiera