none
No capturo eventos dentro de un while que dura varios minutos RRS feed

  • Pregunta

  • Hola, tengo una aplicación que captura eventos normalmente como OnTimer (cada cierto tiempo) o OnPressF(cada vez que pulso una teclaF). Esta aplicación está basada en diálogos. En una parte de la misma cuando presiono uno de los botones entro en un bucle muy largo (puede llegar a horas) construido con un while. Es en este momento cuando la aplicación deja de detectarme las teclas F, no entra en OnTimer además de que si minimizo la aplicación y luego la máximizo no se me redibuja en la pantalla (esto no es problema ya que utilizao RedrawWindow y ya está solucionado) un último dato es que si abro el administrador de tareas la aplicación aparece como NoResponde aunque no es cierto porque se que trabaja.
    Mi pregunta es si a alguien le ha ocurrido esto mismo y si tiene la solución.
    Por otra parte, tengo una solución al tema y es crear un thread para hacer todos estos cálculos pesados de manera que el hilo del diálogo no va "tan cargado".
    De todas formas me gustaría si alguien tiene alguna solución o idea para la cuestión que he planteado al principio.
    Un saludo!
    miércoles, 14 de mayo de 2008 14:06

Todas las respuestas

  • Pues es que a final de cuentas, los mensajes de Windows están dentro del mismo hilo. Por eso no redibuja o no detecta las teclas (o más bien, no las procesa), porque va despachando mensaje a mensaje, y en lo que a la ventana concierne, el mensaje que dura horas no ha terminado, por lo que no puede relegar funciones. Lo mejor es, en efecto, hacer otro hilo que lo procese.

    Saludos.
    miércoles, 14 de mayo de 2008 15:13
  • Muchas gracias por responder, el motivo del mensaje es saber la razón por la que no podía capturar mensajes. Gracias por contestarme y resolver la duda. Un saludo!
    jueves, 15 de mayo de 2008 6:50