C ++: более точные временные интервалы - PullRequest
2 голосов
/ 23 января 2011

Мне нужно периодически выполнять определенную задачу, и в настоящее время я использую nanosleep.

Задача должна выполняться каждую секунду или каждые 10 секунд.

Есть ли лучший способ сделать эточем:

while(true)
{
 doTask();
 sleep();
}

Вальтер

Ответы [ 2 ]

1 голос
/ 23 января 2011

Одним из вариантов может быть создание потока, который будет выполнять задачу с заданным временем ожидания.

0 голосов
/ 23 января 2011

Вы можете использовать библиотеку потоков, чтобы создать поток, дескриптор которого запускает doTask ().Ваш основной поток просто спит и работает каждую 1 секунду или 10 секунд.

Это можно сделать с помощью QTimer и QRunnable.

http://doc.qt.nokia.com/latest/qtimer.html

В соответствии сстыковка, разрешение составляет в большинстве случаев около 1 мс.Для ваших нужд этого должно быть достаточно.

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