我需要定期执行特定任务,目前正在使用nanosleep。C++:更精确的时间间隔
该任务需要每秒或每10秒运行一次。
是否有更好的方法来做到这一点比:
while(true)
{
doTask();
sleep();
}
沃尔特
我需要定期执行特定任务,目前正在使用nanosleep。C++:更精确的时间间隔
该任务需要每秒或每10秒运行一次。
是否有更好的方法来做到这一点比:
while(true)
{
doTask();
sleep();
}
沃尔特
的选择之一可能是创建一个线程,将做任务用指定超时。
您可以使用线程库来创建一个线程,该线程处理运行doTask()。您的主线程只会保持睡眠状态并每隔1秒或10秒运行一次。
这可以用QTimer和QRunnable来完成。
http://doc.qt.nokia.com/latest/qtimer.html
据被告席上,分辨率大约是在大多数情况下1毫秒。为了您的需要,这应该是足够的。
它与C++无关,取决于操作系统。 “睡眠”的精确度不够好吗? – ruslik 2011-01-23 03:33:30
[C++跨平台高分辨率定时器]的可能的重复(http://stackoverflow.com/questions/1487695/c-cross-platform-high-resolution-timer) – 2011-01-23 03:47:23