簡體   English   中英

更好的提升asio deadline_timer的例子

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM