我試圖運行下面的代碼:async_connect塊io_service對象:: run_one()中的boost :: ASIO
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之後,從run_one回報()已過期(2秒後) 。 實際上,run_one()阻塞,直到收到SYN-ACK或RST。如果服務器沒有響應,run_one()會阻塞超過2秒的超時。
我該怎麼辦等待指定的時間來連接在後臺做一些工作?
謝謝。
謝謝。 t.async_wait(升壓::綁定(empty_function()));解決了這個問題。 – excitoon 2010-11-04 22:42:58