Как я могу добиться большей точности с помощью thread::sleep_for?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу добиться большей точности с помощью thread::sleep_for?

Сообщение Anonymous »

У меня есть программа opengl для Windows 10, которая использует отдельные потоки для расчета/изменения положения точек на экране с течением времени. Каждый поток вычисляет положение своей 1 точки в цикле (несколько точек на экране). Некоторые точки меняют положение быстрее, чем другие, за счет более коротких задержек в этих потоках между расчетом каждой новой позиции. Отдельные потоки рендеринга учитывают изменения при обновлении экрана. Я старался сделать задержку примерно 10 или более микросекунд. Однако Sleep_for имеет огромное значение для 1000 мкс и 999 мкс.
Почему такая разница между временем сна обоих потоков? Пример кода ниже.
#include
#include

void example_func(int time){
auto start = std::chrono::high_resolution_clock::now();
this_thread::sleep_for(chrono::microseconds(time));
auto end = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast(end - start);
cout

Подробнее здесь: https://stackoverflow.com/questions/783 ... dsleep-for

Вернуться в «C++»