如果你的意图是想把io_context变成一个thread_pool来用,那你需要一个work guard,你可以看一下asio里关于work guard的参考,具体来说一个work guard保证io_context里事件队列清空以后,线程不会退出run
不知道你asio用的是哪个版本,我记得在1.73之后的版本里,加了asio::thread_pool这个executor,你可以用这个来代替io_context
【 在 z16166 的大作中提到: 】
: 我需要尽可能复用io_context,毕竟每次分配新的io_context对象有开销
: 之前我试过,只要执行了io_context.stop()后,如果再执行io_context.restart()和io_context.run(),会不正常,卡住,此时就不能复用io_context对象。
: 所以在一定范围内改为只要执行了stop(),就释放掉io_context,重新分配一个新的io_context。
: ...................
--
FROM 125.119.102.*