gpt4 book ai didi

c++ - 停止 io_service 对象和 boost::asio::io_service::work

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:38 27 4
gpt4 key购买 nike

boost::asio::io_service m_io_service;
boost::asio::io_service::work m_work(m_io_service);
m_io_service.run()
m_io_service.stop();
m_io_service.reset();
m_io_service.run(); //work object still used here or should I recreate a m_work object?

如果我停止一个 io_service 对象,然后再次启动它,我是否需要将它重新绑定(bind)到一个工作对象?

最佳答案

规范的方式是拥有

optional<asio::io_service::work> m_work(asio::io_service::work(m_io_service));

shared_ptr<asio::io_service::work> m_work = make_shared<asio::io_service::work>(m_io_service);

因此,在这两种情况下,您都可以发出“关闭服务使用”的信号

m_work.reset();

而且,不,我认为您不需要重新绑定(bind)工作对象。工作对象不是实际的异步操作。它更像是一个引用计数/锁

关于c++ - 停止 io_service 对象和 boost::asio::io_service::work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31179047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com