Ver Mensaje Individual
  #15 (permalink)  
Antiguo 26/01/2015, 13:05
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Mantener el programa siempre en ejecucion

Cita:
Iniciado por HackmanC Ver Mensaje
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