我想提供一个由一个全局线程驱动的全局io_service
。很简单,我只是调用线程体io_service::run()
。但是,如果没有工作要做,则run
(run_one
,poll
,poll_one
)会返回。但是,如果线程反复调用run(),它将在没有任何操作时忙于循环。
我正在寻找一种方法来阻止线程,而在io_service中没有任何工作要做。我可以在混合中添加一个全局事件来阻止线程。但是,这将要求io_service
的用户在每次使用该服务时通知该事件。不是理想的解决方案。
注意:没有实际的全局变量,我从不使用事件进行并发我只是将问题简化为我的确切需要。真正的目标是asio::deadline_timer
子类,不需要io_service
作为构造参数。
答案 0 :(得分:21)