0
我修改了boost :: asio的Timer.4示例,並用第二個參數間隔調用打印機類,並在間隔少時拋出不止一個。async_wait()in boost :: asio當io_service.run()在try-catch後立即觸發
當io.run()在try-catch中時,計時器在指定的時間後被觸發。
boost::asio::io_service io;
try {
Printer p { io, 2 };
p.print();
io.run();
} catch (std::exception& e) {
std::cerr << e.what() << std::endl;
}
但是,當我將它移動到try-catch的下方時,會立即觸發。
try {
Printer p { io, 2 };
p.print();
} catch (std::exception& e) {
std::cerr << e.what() << std::endl;
}
io.run();
這可能是一個邏輯上的解釋,它立即在try-catch之外觸發。有人可以闡明這一點嗎?