【发布时间】:2014-02-14 05:39:39
【问题描述】:
我可以通过以下方式使用stackful coroutine和boost::asio::steady_timer::async_wait吗?
关键是(我的理解,不确定)在等待期间,局部变量 timer 不在堆栈上,因此无法访问。那么回调能否正常进行呢? (仅供参考,它在我使用 clang++5.0 的 Mac 上运行良好。)
boost::asio::io_service io;
void Work(boost::asio::yield_context yield) {
boost::asio::steady_timer timer(io);
timer.expires_from_now(std::chrono::seconds(5));
timer.async_wait(yield);
cout << "Woke up." << endl;
}
int main() {
boost::asio::spawn(io, Work);
io.run();
return 0;
}
我觉得这个问题值得比较一下:boost asio deadline_timer
【问题讨论】:
标签: c++ boost boost-asio