현재 몇 가지 간단한 tcp 네트워킹을 위해 boost :: asio를 처음 사용하고 있습니다. allready 내가 어떻게 대처해야할지 모르겠다 무언가에 걸쳐왔다. 지금까지 io_service.run() 메서드는 기본적으로 수행 할 루프가 더 이상 남아 있지 않을 때까지 실행됩니다. 즉, 작은 서버 객체를 릴리스 할 때까지 실행됩니다. 필자는 이미 mainloop을 설정했기 때문에 단순함을 위해서 네트워킹 루프를 수동으로 업데이트하려고합니다. io_service.poll()은 내가 원하는대로 할 수 있다고 생각합니다.Boost :: Asio : io_service.run() vs poll() 또는 mainloop에 boost :: asio를 어떻게 통합합니까?
void myApplication::update()
{
myIoService.poll();
//do other stuff
}
이것은 작동하는 것처럼 보이지만 boost :: asios io 서비스를 처리하는 일반적인 방법으로 보이지 않기 때문에이 방법의 단점이 있는지 궁금합니다. 이것이 유효한 접근 방법입니까, 아니면 io_service.run()을 비 차단 추가 스레드에서 사용해야합니까?
'io_service :: poll'이 반환 된 후에 반드시'io_service'가 멈추는 것은 아닙니다. 후속 'io_service :: run' 또는'io_service : poll' 전에 왜'io_service :: reset'을 필요로합니까? – updogliu