C ++:更精确的时间间隔

时间:2011-01-23 03:26:38

标签: c++ timing

我需要定期执行特定任务,目前正在使用nanosleep。

任务需要每隔一秒或每10秒运行一次。

有没有比这更好的方法:

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

沃尔特

2 个答案:

答案 0 :(得分:1)

其中一个选项可能是创建一个可以使用指定的超时执行任务的线程。

答案 1 :(得分:0)

您可以使用线程库来创建一个处理运行doTask()的线程。你的主线只是保持睡眠状态,每1秒或10秒运行一次。

这可以通过QTimer和QRunnable来完成。

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

根据底座,大多数情况下分辨率约为1 ms。根据您的需要,这应该足够了。