加速异步计时器仍然阻塞主线程

Boost asynchronous timer still blocks the main thread

本文关键字:线程 异步 计时器 加速      更新时间:2023-10-16

我正在尝试使用提升计时器异步执行一些操作:

boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.async_wait(timer_func);
io.run();

问题是 io.run() 是一个阻塞调用。我想要一个不阻塞主线程的异步计时器,然后在主线程上调用回调。这可以通过提升吗?

io_service::poll不会阻塞。不过,您必须围绕它实现一些循环逻辑。