[英]Better boost asio deadline_timer example
我正在追求一個更好的例子: boost::asio::deadline_timer
給出的示例將始終超時並調用close
方法。 我嘗試在計時器上調用cancel()
,但這會導致傳遞給async_wait
的函數立即被調用。
在異步tcp客戶端中使用計時器的正確方法是什么?
您提到在計時器上調用cancel()會導致傳遞給async_wait的函數立即被調用。 這是預期的行為,但請記住,您可以檢查傳遞給計時器處理程序的錯誤,以確定計時器是否已取消。 如果取消定時器,則傳遞operation_aborted。 例如:
void handleTimer(const boost::system::error_code& error) {
if (error == boost::asio::error::operation_aborted) {
std::cout << "Timer was canceled" << std::endl;
}
else if (error) {
std::cout << "Timer error: " << error.message() << std::endl;
}
}
希望這會有所幫助。 如果沒有,您正在尋找的具體示例是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.