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