Задать вопрос
kid-programmer
@kid-programmer

Вопрос по Thread.Sleep(1)?

Почему код выполняется не 6 а 12 секунд?
for (int i = 0; i <= 6000; i++)
            {
                Thread.Sleep(1);
                Console.WriteLine(i);
            }
  • Вопрос задан
  • 342 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Stepik
    PRO C#. Профессия "Backend разработчик"
    4 месяца
    Далее
Решения вопроса 1
dordzhiev
@dordzhiev
Потому что контекст переключается по таймеру. Thread.Sleep(n) усыпляет поток на не менее чем n мс.
И да, гугл поможет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
А причем здесь секунды.
Поток уснул, попал в конец очереди со своим приоритетом, время выйдет, он попросится назад, если CPU за это время на это ядро не выдавал время потоку из другого процесса, то восстанавливать адресное пространство не придется, и он только загрузит состояние потока на котором его убирал и продолжит работу.
Скорость работы кода всегда будет разная.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы