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