Cita:
Iniciado por HackmanC Tienes razón, pero como explique anteriormente eso se llama pull, y si tienes la opción de push, es mas eficiente. No espera, sino que no hace nada hasta que le llega un mensaje que lo despierta. Como un sleep() pero no por tiempo, sino hasta que algún otro proceso lo saca del sleep().
Lo que se logra con el push y en este caso el GetMessage (Dispatch, DefWndProc, etc), es algo parecido al patrón observador-observable, como un Listener que no hace nada hasta que le llega un evento.
Tan crítico es el rendimiento? en este caso lo dudo. Está claro que dejar al SO la responsabilidad de "despertarte" cuando puede ser lo ideal. Sin embargo hay que tener en cuenta otras consideraciones:
* La espera puede no permitirte abortar el proceso de una forma sencilla
* La solución, desde luego, no es portable
* La solución es más compleja de implementar y lo mismo no es necesario