停止io_service对象并提升::asio::io_service::work
stopping an io_service object and boost::asio::io_service::work
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对象,然后重新启动它,我需要将它重新绑定到工作对象吗?
规范的方法是使用
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();
而且,不,我认为你不需要重新绑定一个工作对象。工作对象不是实际的异步操作。它更像是一个refcount/lock
相关文章:
- Seg Fault Issue C++ (file IO / getline)
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 为什么在读取文件大小时文件IO速度会发生变化
- Agora.io 虚幻引擎插件构建错误
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- ASIO signal_set多个 IO 线程不可靠,具体取决于代码顺序?
- 通过 Tor 服务C++ socket.io 客户端
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 如何读取 google::p rotobuf::io::CodedOutputStream::WriteVarint32
- Conan.io 在编译步骤中或已经在签出时
- C++中真正的异步文件 IO
- 在C++中返回 IO 对象的目的是什么?
- 使用 Broadcast 发出的从节点服务器发送的数据不能被 C++ 套接字 IO 客户端读取
- C++网络 IO、文件处理和网络故障
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- Android Studio-在现有的旧项目中启用本机C++调试(card.io Android Source)
- 如何检测函数是否执行IO操作
- 如何键入用于const对象的自定义io操纵器
- libevent是否允许在不同的线程中运行timer/io的回调
- IO服务重新启动后,Boost最后期限计时器持续触发