Attualmente sto cercando di utilizzare boost :: asio per alcuni semplici collegamenti in rete TCP per la prima volta, e già mi sono imbattuto in qualcosa che non sono davvero sicuro di come affrontare. Per quanto ne so io, il metodo io_service.run() è fondamentalmente un ciclo che viene eseguito finché non rimane più nulla da fare, il che significa che verrà eseguito fino a quando non rilascerò il mio piccolo oggetto server. Dato che ho già una sorta di installazione di mainloop, vorrei piuttosto aggiornare manualmente il loop di rete da lì solo per semplicità, e penso che io_service.poll() farebbe quello che voglio, un po 'come questo:Boost :: Asio: io_service.run() vs sondaggio() o come integrare boost :: asio in mainloop
void myApplication::update()
{
myIoService.poll();
//do other stuff
}
questo sembra funzionare, ma io non so ancora se c'è un inconveniente da questo metodo dal momento che non sembra essere il modo comune di trattare con boost :: servizi asios io. È un approccio valido o dovrei piuttosto usare io_service.run() in un thread aggiuntivo non bloccante?
'io_service' non viene necessariamente arrestato dopo il ritorno di' io_service :: poll'. Perché è necessario 'io_service :: reset' prima dei successivi' io_service :: run' o 'io_service: poll'? – updogliu