Вызов функции WinAPI Sleep () длится дольше, чем ожидалось

ОС: Windows 7

При вызове функции WinAPI Sleep () как Sleep (1) поток фактически спит в течение 15 мс. Я делал это 100 раз в цикле, и общее время сна составляло 1500 мс вместо 100.

Это обычное поведение или я должен быть согласен с тем, что что-то не так с моей установкой MOBO, CPU, Windows?

РЕДАКТИРОВАТЬ: Если возможно, вы могли бы запустить этот код и напишите, как долго было время сна. Я позволил своему другу управлять этим, и он фактически имел все это в 1 мс.

#include <iostream>
#include <ctime>
#include <Windows.h>

void test(void)
{
    std::cout << "Testing 1ms sleep." << std::endl;

    for (unsigned int i = 0; i < 10; i++)
    {
        std::clock_t startClocks = std::clock();

        Sleep(1);

        std::clock_t clocksTaken = std::clock() - startClocks;
        std::cout << "Time: " << clocksTaken << "ms." << std::endl;
    }
}

int main(void)
{
    test();

    std::cin.sync();
    std::cin.get();
    return 0;
}

РЕДАКТИРОВАНИЕ 2: Кажется, что причина, почему некоторые люди получают 1 мс, состоит в том, что другая программа работает, которая устанавливает общесистемное разрешение таймера 1 мс. По умолчанию это должно быть 15,6 мс в Windows 7.

Ответы на вопрос(7)

Ваш ответ на вопрос