FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Como evito que el Form principal se "cuelgue" con procesos?
Hola gente, que tal?
Soy nuevo y no-nuevo aca, siempre veo tutoriales y explicaciones, que me solucionan la vida. Pero tengo un problema en delphi y no encontre solucion todavia. Busque a mano, busque con el buscador, busque desde google pero no lo encuentro. Comento mi problema. En varios programas que utilizan Strings y TStringList, me pasa que cuando un proceso agrega muchas (muchas digamos unas 10000) cadenas, el Form principal se me queda frizado. Se entiende? No tenes control sobre el Form principal, no podes hacerle nada. Ni cerrarlo, es cuelga mal. Estuve buscando como hacer que esos procedimientos trabajen en segundo plano, pero no encontre especificamente eso. Espero que se entienda, sino me expreso mejor. Tambien espero que este en la seccion correcta, porque las otras no me parecian correctas. Y si esto ya se respondio, por favor denme un link al hilo. Saludos! PD: Ya puse un Gif y cuando llamo al proceso que me friza el Form principal, se vuele todo invisible excepto ese gif, pero tambien se me friza el gif. Última edición por bruykari fecha: 27-11-2009 a las 13:05:58. Razón: Probe ponerle un gif |
#2
|
||||
|
||||
Hola bruykari, añade esta línea en el ciclo donde estas añadiendo tus 10000 cadenas:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#3
|
|||
|
|||
Exactamente eso estaba necesitando Caro!!!!!
Mil millones de gracias!!!!!!!! Esto me tiene loco hace 2 horas ya!!!! Listo!!! Lo que habia preguntado recien, antes de estar editandolo ahora, ya lo solucione yo limpiando el codigo. De nuevo mil gracias Caro!!! Saludos!!!!!!!!!!!! PD: MODs, el tema termino, cierrenlo si quieren. Última edición por bruykari fecha: 27-11-2009 a las 14:02:28. Razón: Lo solucione |
#4
|
|||
|
|||
Funciona como un hilo?
Buenas,
Que solución tan simple y elegante, pero quisiera saber si esto funciona igual que un hilo de ejecución (Tthread), y si se puede colocar un control para "cortar" el bucle. Felicidades. |
#5
|
||||
|
||||
No, no tiene nada que ver con los hilos (TThread). Es más, creo que no es buena idea llamar a "Application.ProcessMessages" desde un hilo que no sea el principal. Desconozco si el objeto Application es "de hilo seguro" (creo recordar que con Delphi 6 no lo hera, no sé si ahora sí lo es).
En el caso de múltiples hilos las soluciones han de venir por otro lado. Por ejemplo, que todas las actualizaciones de formularios y ventanas se hagan desde el hilo principal y que en los hilos "hijo" sólo se haga procesamiento de datos. |
#6
|
||||
|
||||
Cita:
Sobre el asunto del Hilo(Thread) creo que deberías ser mas específico y detallista de lo que pretendes hacer, en todo caso si el tema es diferente a éste, pues te aconsejo que hábras un nuevo tema(nuevo hilo) y posties ahí tus dudas, ésto para tener un buen orden y fascilitar las búsqueda por temas.. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 24-02-2010 a las 16:48:06. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
"sincronizar" mostrar Form en Pantalla | NEG1414 | C++ Builder | 3 | 22-10-2008 16:24:49 |
Como hacer que se vea "Si" en vez de "TRUE" en un DBGrid | lu9eui | C++ Builder | 2 | 07-08-2007 04:03:13 |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
"enditall" finalizar aplicacs y procesos innecesarios para por ejemplo...editar video | images | API de Windows | 7 | 20-09-2004 09:55:14 |
|