Почему time.sleep () в этом коде висит в консоли отладчика кода Visual Studio, а не в терминале? - PullRequest
0 голосов
/ 11 февраля 2020

Используя этот код:

from time import sleep
import datetime
import sys


def print_and_sleep():
    i = 0
    while i < 10000:
        print('Sleep ' + str(i))
        sleep(0.0)
        i += 1

    print('Slept ' + str(i))


if __name__ == '__main__':
     print_and_sleep()

Когда я запускаю его в терминале или в PyCharm, все в порядке, последние строки выводятся следующим образом:

…
Sleep 9995
Sleep 9996
Sleep 9997
Sleep 9998
Sleep 9999
Slept 10000

Но когда Я запускаю его в режиме отладки в коде Visual Studio, он зависает около 7000, иногда немного больше, иногда немного меньше:

…
Sleep 6915
Sleep 6916
Sleep 6917
Sleep 6918
Sleep 6919

При продолжительности сна <= 0,5 он также зависает. Я не тестировал с большими значениями. </p>

Отладчик - тот, который установлен с расширением Python 2020.1.58038 от Microsoft.

Вот моя конфигурация отладки "launch. json" :

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "internalConsole"
        }
    ]
}

Может ли это быть ошибкой в ​​отладчике или я что-то упустил? Как я мог продолжить расследование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...