1
也許我誤解是如何工作的,但我想超時添加到read_until
電話,所以我創建了一個deadline_timer
並調用read_until
之前就開始了,但read_until
還是塊一切,而且定時器永遠不會被激活。我做錯了嗎?以下是我的代碼片段。嘗試使用deadline_timer添加超時read_until
void MyClass::handle_timeout(const boost::system::error_code& error)
{
// Our deadline timer went off.
std::cout << "Deadline Timer was triggered." << std::endl;
Disconnect();
}
// Read some data.
void MyClass::ReadData(){
boost::asio::streambuf response;
deadline_.expires_from_now(boost::posix_time::seconds(DEFAULT_TIMEOUT));
deadline_.async_wait(boost::bind(&MyClass::handle_timeout, this, _1));
boost::asio::read_until(socket_,response,asString);
}
都做,定時器和插座使用相同的io_service對象?如果沒有,那就是原因。 – 2012-08-08 18:17:00
是的,它們都是用與它們的參數相同的io_service構造的。 – CptanPanic 2012-08-08 18:33:22