目前正在查看比Boost.Asio网站上提供的更详细的教程(https://www.gamedev.net/blogs/entry/2249317-a-guide-to-getting-started-with-boostasio/),但仍有一些我不理解的事情。
鉴于此功能......
#include <boost/asio.hpp>
#include <iostream>
int main(int argc, char* argv[]) {
boost::asio::io_service io_service;
boost::asio::io_service::work work(io_service);
io_service.run();
std::cout << "Do you reckon this line displays?" << std::endl;
return 0;
}
...并且根据run
方法(http://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio/reference/io_service/run.html)的文档,它应该运行io_service对象的事件处理循环。但是什么那意味着?我没有看到任何事件处理循环。我可以观察到永远不会达到std::cout
指令的事实。
这一次,如果我们将io_service.run()
替换为io_service.poll()
,则会到达std::cout
语句。根据{{1}}方法(http://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio/reference/io_service/poll.html)的文档,它应该运行io_service对象的事件处理循环来执行就绪处理程序。
但说实话,我认为文档有点令人困惑,我不知道他们指的是哪个就绪处理程序并且更广泛,民意调查之间有什么区别()和run()