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之外触发。有人可以阐明这一点吗?