【发布时间】:2010-11-04 21:43:59
【问题描述】:
我正在尝试运行以下代码:
some_sock.async_connect(...); // handle_connect() sets the 'condition' flag
boost::asio::deadline_timer t(ios, boost::posix_time::seconds(2));
while (t.expires_from_now() >= boost::posix_time::seconds(0))
{
ios.run_one();
if (condition) return;
}
在计时器 t 到期后(2 秒后),从 run_one() 返回理想的行为。 实际上,run_one() 会阻塞,直到收到 SYN-ACK 或 RST。如果服务器没有响应,run_one() 将阻塞超过 2 秒的超时时间。
我应该怎么做才能等待指定的时间连接在后台做一些工作?
谢谢。
【问题讨论】:
-
谢谢。 t.async_wait(boost::bind(empty_function()));解决了这个问题。
标签: c++ boost tcp boost-asio