[Solved] The most accurate timer qt C++

Run a QTimer on a separate QThread which doesn’t do anything else.
If you’re running the timer on an already busy thread the timeout events may not come on time or not at all.

Make a worker class e.g. “PingPacketWorker”, implement a slot that does pinging.
Make a QThread.
Connect your QTimer and PingPacketWorker signal/slots.
Start the timer.
Call moveToThread on the PingPacketWorker and the QTimer, the timer should restart because of moveToThread, note you can only start / stop it on the owner thread!

You could also increase your QThread’s priority since you asked for “the most accurate” solution …


Also, set QTimer::setTimerType(Qt::PreciseTimer)

The default Qt::CoarseTimer is less precise (5% of the interval)


solved The most accurate timer qt C++