| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
a3093 Lt


Registrado: 27 May 2004Mensajes: 97Ubicación: Las Palmas de Gran Canaria
|
Publicado: Jue 12 Jul, 2007 8:42 pm Asunto: Formulario bloqueado por un hilo |
|
|
Hola,
estoy ejecutando en un hilo un proceso complejo que dura entre 30 y 60 segundos. Durante ese tiempo el formulario se me queda bloqueado, incluso tengo un timer1 que no se me ejecuta durante ese tiempo. La prioridad del hilo la tengo como media.
¿Alguien sabe qué puedo hacer?
Graciasss!!!! |
|
| Volver arriba |
|
 |
a3093 Lt


Registrado: 27 May 2004Mensajes: 97Ubicación: Las Palmas de Gran Canaria
|
Publicado: Vie 13 Jul, 2007 4:57 pm Asunto: |
|
|
Ya encontré la solución.
Lo q hice fue usar la siguiente función que puso una vez por aquí César, en el nucleo donde ejecutaba el proceso.
| Código: |
void ProcessMessages(void)
{
MSG msg;
while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
|
|
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Lun 16 Jul, 2007 8:42 am Asunto: |
|
|
¿como puede bloquearte un hilo "indeoendiente" un formulario?
PD: Quiero un tutorial sobre ProcessMessages que con esto se pueden hacer muchas cosas útiles ^^.
thx. |
|
| Volver arriba |
|
 |
a3093 Lt


Registrado: 27 May 2004Mensajes: 97Ubicación: Las Palmas de Gran Canaria
|
Publicado: Lun 16 Jul, 2007 9:22 am Asunto: |
|
|
Me imagino que eso es gracias a la "maravilla" de Windows. En un principio lo tenía sin hilo, ya que pensaba que el proceso mientras se ejecutaba, el time1 se encargaría de ir refrescando el formulario cada segundo con el estado actual del proceso.
Sin embargo no funcionaba, y fue cuando decidí meter el proceso en un hilo pero me seguía pasando lo mismo. Entonces utilicé ProcessMessages() que sirve si no me equivoco para que Windows pueda leer sus mensajes.
Si alguien más quiere poner su granito de arena sobre porqué pasaba esto o sobre la función ProcessMessages será bienvenido  |
|
| Volver arriba |
|
 |
|