如何在boost :: asio :: io上进行连接

这是问题:

在主线程(io - boost :: asio :: io_service)中:

io.post(functor1, callback1)
....
io.post(functorN, callbackN)

io.join() <--- waiting while all the task to be processed and continue to execute the program

代码在循环中执行。 boost::thread_group可以完美匹配,但它boost::thread_group创建新线程,而我只想创建工作线程一次, boost::thread_group派遣任务。 我所见过的所有线程线程都只是围绕着线程+ io_service向量的包装,它不能以我上面显示的方式使用。

那么,我怎样才能使“加入”boost :: asio?


所以,

work_.reset();
thread_group_.join_all();

应该够了。 通常的做法是有

boost::unique_ptr<io_service::work> work_; // non-copyable

要么

boost::optional<io_service::work> work_; // copyable
链接地址: http://www.djcxy.com/p/62681.html

上一篇: How to make join on boost::asio::io

下一篇: closing a boost::asio::ip::tcp::socket with pending connect