【发布时间】:2019-12-30 19:05:52
【问题描述】:
我希望能够将一组处理程序发布到boost::asio::io_service,然后运行所有处理程序。当所有处理程序完成后,我想再次添加一组新的处理程序和run()。并在一个线程中永远重复此操作。
但是我有一个问题,在第一次run() 调用之后,下一个发布的职位被忽略了。
这是一个小例子(coliru):
#include <iostream>
#include <boost/asio.hpp>
int main()
{
boost::asio::io_service io;
io.post([]{ std::cout << "Hello";});
io.run();
io.post([]{ std::cout << ", World!" << std::endl; });
io.run();
}
它只会打印“Hello”消息然后成功退出。
为什么这个例子不打印“Hello, World!”?
Boost 版本:1.71.0
【问题讨论】:
标签: c++ boost boost-asio