Boost asio run vs work(含糊不清)-工作类的目的是什么?

Rog*_*rld 3 c++ boost boost-asio

如您在此示例udp服务器中看到的那样,run方法将使应用程序永远运行。(已测试)

因此,无需使用文档中提到的工作类

从boost文档中:工作类用于在工作开始和结束时通知io_service。这样可以确保io_service对象的run()函数不会在工作进行时退出,并确保在没有剩余未完成的工作时退出。

Jod*_*cus 5

work班已被废弃,由已被替换executor_work_guard。其目的已在文档中说明

某些应用程序可能需要在run()没有更多工作要做时阻止io_context对象的调用返回。例如,io_context可能在后台线程中运行,该后台线程在应用程序的异步操作之前启动。该run()呼叫可以被保持通过创建类型的对象运行boost::asio::executor_work_guard<io_context::executor_type>[...]