Я часто вижу, как упоминается, что 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()
код (или тесты), умирает щенок