Проблема с SetTimer заключается в том, что вы будете получать уведомления по таймеру не раньше установленного вами времени, но вы не можете гарантировать, что оно будет именно в то время, которое вы установили.
Во-первых, вы зависите от разрешения таймера системы, которое обычно составляет 15 мс.Таким образом, даже если вы установите 10 мс, он будет равняться 15 мс (или больше).
Во-вторых, уведомления по таймеру отправляются, когда больше нет сообщений для обработки.Таким образом, в цикле сообщений, когда в очереди больше нет сообщений, система проверяет, установлен ли какой-либо таймер и установлен ли он.Если это так, он отправляет одно уведомление.Дело в том, что если ваша программа занята другими делами, она может потерять один или несколько «тиков» и «сгруппировать» их в одном уведомлении, что может произойти, скажем, за 75 мс.
Нижняя строкаSetTimer не является надежным методом таймера для нужд высокого разрешения.
Так что вам, возможно, придется посмотреть на другие решения, например, на отдельную ветку для чтения.