此教程程序显示如何执行阻塞等待计时器上,介绍了aiso。
#include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> int main() { boost::asio::io_service io; boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); t.wait(); std::cout << "Hello, world!" << std::endl; return 0; } 我们开始通过包括必要的头文件。 所有的aiso类可以利用简单地包括"asio.hpp"头文件。 #include <iostream>#include <boost/asio.hpp>
因为这个例子使用计时器,我们需要包括适当的 Boost.Date_Time 头文件的操作时间。
#include <boost/date_time/posix_time/posix_time.hpp>
所有使用aiso程序需要有至少一个io_service对象。此类提供对 I/O 功能的访问。我们声明此类型对象的第一件事中的主要功能。 int main() {
boost::asio::io_service io;
下一步我们声明对象的类型 boost::asio::deadline_timer。提供的 I/O 功能的核心aiso类 (或在此案例计时器功能) 始终以 io_service 作为其第一个构造函数参数的引用。第二个参数的构造函数设置计时器到期从现在开始的 5 秒。
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
在这个简单的例子我们执行阻塞等待计时器。那就是,对deadline_timer::wait()的调用不会返回直到计时器已过期,5 秒钟后它被创建 (即不是从等待启动时)。 截止日期计时器总是处于两种状态之一:"过期"不过期"。如果调用deadline_timer::wait()函数时上过期的计时器,它将立即返回。
t.wait();
最后我们打印强制性的"Hello, world!"消息显示当计时器已过期。 std::cout << "Hello, world!" << std::endl; return 0; }
