Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 506
1

Sleep() имеет плохую точность задержки времени, есть альтернативы?

26.04.2017, 16:47. Просмотров 1270. Ответов 2
Метки нет (Все метки)

Столкнулся с проблемой в коде с++
установка Sleep(1);//Задержка кода на 1 миллисек.
Однако это далеко не так. За место 1 миллисекунды реально может получатся 3-5 миллисекунд.
Решал задачу с тем как стабилизировать fps - количества кадров отрисовки в секунду.

Может у кого есть полезные коды для стабилизации fps?
Может есть альтернатива Sleep()?
Может есть возможности просто кодом тормозить скорость выполнения. Но это может приводить к тому, что процессоры могут больше обрабатывать кода или меньше и все это будет влиять на изменения fps.
Можно конечно сделать свои самонастраиваемые автоматические корректировки с кодом задержки.

Еще заметил особенность, когда запускал браузер гугл хром, то задержка Sleep(1) была на много точнее. Но все равно это не позволяет получить более точную задержку. Даже если гасить часть кадров из 10, то все равно Sleep() работает не точно.

Хотя тут могут еще части кода влиять. Но сильнее дает погрешность Sleep().

Кто, что расскажет?

Добавлено через 8 минут
Пока сочинял эту тему пришла в голову мысль использовать timer
SetTimer(hWnd,1,10,NULL);
Кто-то пробовал, что-либо писать с таймеров для fps.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2017, 16:47
Ответы с готовыми решениями:

Команда для задержки времени (только не предлагать sleep, с которым нужна многопоточность)
Проблема состоит в следующем. Решил немного поиграться в Qt и слепить на скорую руку что-то вроде...

Какие есть функции для задержки времени?
Привет всем. Кто нибудь знает аналогичные функции time.sleep() в python То есть чтобы какое то...

Есть ли программа для автозапуска с функцией задержки времени?
всем привет!не подскажете хорошую программу для автозапуска с функцией задержки на некоторое...

Задержки в Sleep
Друзья, есть код #include <iostream> #include<Windows.h> using namespace std; struct...

2
Эксперт .NET
7078 / 4655 / 1114
Регистрация: 25.05.2015
Сообщений: 14,233
Записей в блоге: 14
26.04.2017, 17:25 2
Цитата Сообщение от infobos Посмотреть сообщение
Еще заметил особенность, когда запускал браузер гугл хром, то задержка Sleep(1) была на много точнее.
Странное поведение Thread.Sleep

Более высокое разрешение задержки можно получить с QueryPerformanceCounter.
1
58 / 14 / 5
Регистрация: 07.04.2017
Сообщений: 58
26.04.2017, 19:12 3
infobos, а никто не говорил, что Windows - realtime-ОС. когда твой поток начнет исполнятся - никто не знает. он может и на несколько секунд перестать выполняться, а может и вообще больше не выполниться.
может помочь:
SetThreadPriority - установить приоритет потока
timeGetDevCaps - узнать точность таймера
timeBeginPeriod - установить точность таймера
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2017, 19:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Реализация задержки sleep
Подскажите как реализовать замирание на несколько секунд и переход к последующему значению лейблов...

Команда задержки Sleep
Здравствуйте. Вот код procedure TForm1.Button1Click(Sender: TObject); begin ...

Объясните тупому почему задержка потока по Sleep() больше чем ... с вызывает задержки и других потоков?
Какое отношение они имеют к данному потоку?Ну спит он себе и спит, пусть он выполняется раз в 5...

Создание сайта: альтернативы, затраты времени, подводные камни
Добрый день всем участникам форума. Начну вкратце: Я студент. В моем университете сейчас активно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.