正如您在此示例udp server中所看到的,run方法将使应用程序永远运行。 (测试)
因此,不需要使用文档中提到的工作类
来自boost文档:工作类用于在工作开始和结束时通知io_service。这可以确保io_service对象的run()函数在工作正在进行时不会退出,并且在没有剩余未完成的工作时它会退出。
work
类已被弃用,已被executor_work_guard
取代。其目的已在documentation中解释:
某些应用程序可能需要阻止io_context对象的
run()
调用在没有其他工作要做时返回。例如,io_context可能正在应用程序异步操作之前启动的后台线程中运行。可以通过创建run()
类型的对象来保持boost::asio::executor_work_guard<io_context::executor_type>
调用[...]