Кто врет : Thread.Sleep() или Stopwatch - C#

Узнай цену своей работы

Формулировка задачи:

        static void Main(string[] args){
            bool proceed=false;
            int timeout = 1500;
            var sw = new System.Diagnostics.Stopwatch();
            sw.Start();
            while (!proceed && sw.ElapsedMilliseconds < timeout){
                Thread.Sleep(50);//Ждем по 50 миллисекунд
                proceed = true;
            }
 
            System.Console.WriteLine(sw.ElapsedMilliseconds);
            sw.Reset();
            Console.ReadLine();
        }
Вывод всегда 49. Как я понимаю, Sleep гарантирует что поток будет остановлен МИНИМУМ на указанное количество миллисекунд, а выходит что это не так?

Решение задачи: «Кто врет : Thread.Sleep() или Stopwatch»

textual
Листинг программы
var start = DateTime.Now;
...
var elapsed = DateTime.Npw - start;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы