同步定时器steady_timer
Demo
#include <iostream> #define BOOST_ASIO_DISABLE_STD_CHRONO //使用boost.chrono
#include <boost/asio.hpp> #include <boost/chrono.hpp> //必须添加这个头文件,否则cout无法输出time_point #include <boost/asio/steady_timer.hpp> using namespace boost::asio; //打开asio名字空间 int main() { io_service io; //必须的io_service对象 steady_timer t1(io); t1.expires_from_now(boost::chrono::milliseconds(5000)); //定时器,5000毫秒后定时器终止 std::cout << t1.expires_at() << std::endl; //查看终止的时间点,单位是纳秒 std::cout << t1.expires_from_now() << std::endl; //查看终止的时间长度,单位是纳秒 t1.wait(); //调用wait()同步等待 std::cout << "Hello World!\n"; getchar(); }
1.steady_timer t1;
可以在构造t1时设置定时器终止的时长。查看数据类型:chrono::nanoseconds &;本打算像书中一样直接传5000_ms进去,结果不行。
steady_timer t1(io, boost::chrono::milliseconds(5000)); //替换上面的定时器初始化