同步定時器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)); //替換上面的定時器初始化
