Странное поведение Thread.Sleep - C#
Формулировка задачи:
Забавно, уже не первый раз встречаю такую вещь: делаю движение контрола по форме в цикле (самостоятельно, или по нажатым клавишам). Чтобы двигалось плавно, добавляю Thread.Sleep с каким-то маленьким значением - 1, 3, и т.д. Все прекрасно работает, но если закрыть программу, запустить что-нибудь тяжеловесное типа Photoshop, игрушки или рендеринга, поиграться и
закрыть
его, а потом снова запустить программу - Sleep(1) превращается в Sleep(100500) - все становитсяочень
медленным, еле ползая по экрану. Процессор при этом работает точно так же, ресурсов больше не тратятся - просто паузы почему-то очень сильно растягиваются. С чем это может быть связано? Попробовал ради интереса повторить это на других компьютерах - та же ситуация, хотя возникает довольно случайным образом. Если есть какой-то простой и адекватный альтернативный способ сделать несколькомиллисекундую задержку - будет тоже круто)Решение задачи: «Странное поведение Thread.Sleep»
textual
Листинг программы
private void timer1_Tick(object sender, EventArgs e) { button1.Location = new Point(button1.Location.X + 1, button1.Location.Y); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д