Я часто бачу, як згадується, що 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()
код (або тести), цуценя помирає