Cómo hacer boost:asio:io
Estos dos fragmentos de código son casi iguales. Ambos primero verifican si hay mensajes sin procesar y, si no, regresan directamente; de lo contrario, llaman a do_one (). La única diferencia es que cuando se llama a size_t do_one(bool block, boost::system::error_code&ec), el primer bloque = false y el último bloque = true.
La encuesta maneja los mensajes completados, es decir, GetQueuedCompletionStatus regresa inmediatamente. Correr provocará espera.