Как я могу добиться большей точности с помощью 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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