Каков рекомендуемый или наиболее точный способ вызова функции через определенное время? - PullRequest
0 голосов
/ 17 октября 2019

Я написал небольшую программу для запуска и записи стерео настроек камер. Я хотел бы записать последовательность 100 мс. Дело в том, что я не знаю, как синхронизировать функции с максимально возможной точностью. Я нашел заголовок <unistd.h>, который включает в себя функцию usleep, которая может приостановить выполнение на указанный микросекундный интервал. Итак, в моей программе я делаю что-то вроде этого:

left_camera.start_recording();
right_camera.start_recording();
usleep(100000);
left_camera.stop_recording();
right_camera.stop_recording();

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

Ответы [ 2 ]

3 голосов
/ 17 октября 2019

Вы также можете использовать std :: this_thread :: sleep_for (C ++ 11)

#include <chrono>
#include <thread>

int main()
{
    std::this_thread::sleep_for(std::chrono::nanoseconds(500));
}
0 голосов
/ 17 октября 2019

сон не лучший способ реализовать таймер. Вы можете использовать функцию асинхронного таймера asio из библиотеки повышения c ++. Вы можете создать таймер, и он вызовет функцию регистра после того, как истечет время таймера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...