- 论坛徽章:
- 0
|
- void print(const boost::system::error_code& /*e*/, boost::asio::deadline_timer* dt_ptr, int& count)
- {
- if (count < 5)
- {
- std::cout << count << " " << std::endl;
- ++count;
- dt_ptr->expires_at(dt_ptr->expires_at() + boost::posix_time::seconds(1));
- dt_ptr->async_wait(boost::bind(print, boost::asio::placeholders::error, dt_ptr, count));
- }
- }
- int main()
- {
- boost::asio::io_service io_ser;
- int count = 0;
- boost::asio::deadline_timer dt(io_ser, boost::posix_time::seconds(1));
- dt.async_wait(boost::bind(&print, boost::asio::placeholders::error, &dt, count));
- io_ser.run();
- std::cout << "final count is " << count << " "; // 这里输出还是0,为什么呢
- return 0;
- }
复制代码 求解释 |
|