Есть один аспект таймеров в асинхронных соединениях, который я хочу знать, правильно ли я понимаю.
Предположим, что мы установили таймер перед выполнением операции чтения, который включает в себя обработчик, а затем run ()
io_service.
Как я понял, io_service завершается, как только менеджер завершает работу после вызова, что может произойти по двум причинам:
a) операция чтения завершена.
b) таймер достиг своего предела .
Предположим, что первое (а) условие было достигнуто, и операция чтения была завершена до того, как таймер закончился.
Возникает вопрос: что происходит с этим таймером? Нам нужно это закончить. Скажите
dTimer_.expires_from_now (boost::posix_time::seconds(0));
after the io_service.run()?
Можете ли вы сбросить его на новый интервал, если необходимо, повторно использовать тот же объект таймера для другой операции чтения?
Могу ли я сбросить () io_service и повторно использовать тот же объект в новом run ()
для этой новой операции?