Есть ли хорошая легкая многоплатформенная очередь таймеров C++?
Вопрос
Я ищу простую очередь таймеров, возможно, с внешним источником синхронизации и методом опроса (таким образом, она будет мультиплатформенной).Каждое сообщение в очереди может быть объектом, реализующим простой интерфейс с virtual onTimer()
функция-член.
Решение
Boost::ASIO
содержит реализацию асинхронного таймера.Это может сработать для вас.
Другие советы
В CodeProject есть хорошая статья, здесь, в котором описаны различные таймеры, доступные в Windows, и есть главы «Таймеры очереди» и «Создайте свой собственный таймер».
Для независимости от платформы вам придется реализовать реализации для разных платформ внутри. #ifdef -- #endif
пары.Я не вижу ничего менее уродливого, чем это.
Он не соответствует всем вашим критериям, но...Я написал серию сообщений в блоге об очереди таймеров для окон, которая реализована с точки зрения внешнего поставщика времени и либо опрашивается, либо управляется потоком.Серия поставляется с исходным кодом и тестами, и ее цель заключалась в демонстрации тестирования достаточно сложного кода.В любом случае, вы сможете использовать часть кода или идей, если никто не предложит более подходящего варианта.
Статьи начинаются здесь: http://www.lenholgate.com/archives/000306.html