Мне нужно найти способ инициировать выполнение функции C++ в точные миллисекундные периоды.
Мне нужно воспроизвести цикл и запустить функцию каждые 40 мс или меньше. Но для простоты остановимся на 40 мс. Пробовал поставить Sleep(40), но метод срабатывает не в определенный момент времени.
Мне просто интересно, есть ли другой способ синхронизации действий, кроме Sleep() в бесконечном цикле while.
Я пытался даже воспроизвести луп на максимальной скорости (процессор ушел на 20%) и замерить разницу системного времени. Затем запуск действия по прошествии 40 мс.
В обоих случаях я испытываю задержки, но в худшем случае задержки всегда разные.
Цикл работает в потоке.
Я пытался дать больший приоритет потоку, но безуспешно.
Дополнительная информация
Сервер работает на операционной системе Windows 7.