Недавно ознакомился с сопрограммами 20 стандарта и тут возникает вопрос о правильности реализвации задержки. На данный момент я реализовал задержку в пределах одного потока. В основном цикле производится их обработка, т.е есть приоритетная очередь и просто проверятся вышло ли время и если да то используя обработчик сопрограммы производится ее "продолжение". И проблема какая. У меня в цикле стоит еще задержка равная частоте обновления монитора. И если 60 Гц, то эта проверка будет производится каждые ~16.667 мс. Что оказывается неточность при небольших задержках. И Вот тут возникает вопросы. А может лучше тогда перенести обработку на отдельный поток? Но ведь продолжение всеравно придется вызывать в основном потоке? Или может изменить обработку задержки?
Также у меня есть реализвация таймера, который ждет в отдельном потоке. Можно было бы его использывать, но тогда на каждую зарержку отдельный поток...