В настоящее время я пытаюсь использовать boost:: asio для некоторых простых tcp-сетей в первый раз, и я все уже сталкивался с чем-то, на чем я не уверен, как справиться. Насколько я понимаю, метод io_service.run() в основном представляет собой цикл, который выполняется до тех пор, пока больше нечего делать, что означает, что он будет работать до тех пор, пока я не выпущу свой маленький серверный объект. Поскольку у меня уже есть какой-то основной халат, я бы предпочел обновить сетевой цикл вручную оттуда только ради простоты, и я думаю, что io_service.poll() будет делать то, что я хочу, вроде как:
void myApplication::update()
{
myIoService.poll();
//do other stuff
}
Это похоже на работу, но мне все еще интересно, есть ли недостаток в этом методе, поскольку это, похоже, не является обычным способом работы с службами boost:: asios io. Является ли это допустимым подходом или я должен использовать io_service.run() в неблокирующем дополнительном потоке?