Мне было интересно, нужно ли мне использовать базовый игровой цикл для этой конкретной операции?
Нет, просто используйте CreateWaitableTimer , SetWaitableTimer , а затем используйте MsgWaitForMultipleObjects вместо GetMessage или PeekMessage в цикле отправки событий (обычно в WinMain).
Вы можете создать таймер и выполнить это действие при обработке сообщения WM_TIMER или при использовании функции таймера, которую вы указали при создании таймера.
См. SetTimer и WM_TIMER .
Вы можете реализовать таймеры более широко и переносимо, используя библиотеку Boost Asio .
Вот пример создания асинхронного таймера.