![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Buenos dias, Escafranda mcuhas gracias por aclararmelas varias dudas con tu comentario, ahora me gustaria saber las dos cosas siguientes si eres tan amable:
1- Un hilo termina cuando termina de ejectar el execute?, o cuando ejecuto el terminate? 2- El objetivo mio era que el codigo del Frmuxiliar.mostrarcargando se corriera en segundo plano de manera que no haga trabar la ventana, perocomo este es propio del formulario no se si habra alguna forma de hacer eso, de llamar ese procedimiento y se ejecute en segundo plano sin que me haga trabar la pantalla. Espero su pronta respuesta y muchas gracias!! |
|
#2
|
||||
|
||||
|
Un hilo termina cuando termina su bucle principal. Si miras el ejempo que te puse, ya no se traba al añadir Application.ProcessMessages;
Si no quieres que aparezca ningún formulario, creo que es mas lógico que no uses uno sino que tu función pertenezca al thread. Saludos. |
|
#3
|
||||
|
||||
|
Cita:
Ahora lo que tienes que ver es que es lo que quieres que tu código haga. Saludos. |
|
#4
|
||||
|
||||
|
Una pregunta: ¿Pará qué utilizas un segundo hilo sólo para mostrar un panel? Mostrar un panel toma un par de milisegundos. Un tiempo invisible al usuario. Si mostrar el panel es el único propósito del hilo, te estás complicando la vida.
Si hicieras cálculos complicados que toman más de un segundo en procesarse, un hilo independiente sería una buena idea. Pero en este caso no le encuentro el sentido. Aparte, a cómo lo estás haciendo ahora, estás introduciendo bugs en tu aplicación. En tu código veo líneas propicias a EAccessViolation. |
|
#5
|
||||
|
||||
|
Yo creo que hasta ahora son meras pruebas de funcionamiento. El propósito final no está claro...
Saludos. |
|
#6
|
||||
|
||||
|
Hola, sólo añadir para aoshishin1 (¡salud!), que la funcionalidad de Synchronize es semejante a la del evento OnIdle de la aplicación (o de un objeto TApplicationEvents), es decir, el código de interés es ejecutado por el hilo principal de la aplicación (como si el hilo alterno no existiese).
Synchronize tiene mayor utilidad cuando el método Execute del nuevo hilo realiza otras tareas en verdadero segundo plano. Así, las tareas que pueden no ser seguras para hilos (thread-safe) se delegan al hilo principal a través de método Synchronize. Básicamente, las tareas no seguras para hilos son aquellas que afectan a regiones de memoria que varios hilos comparten, como puede ser cambiar o destruir un objeto al que instantes después otro hilo (como el principal) intentaría acceder. Por otra parte, aunque sea algo sobrado para lo que busca aoshishin1, cabe mencionar que como alternativa a Synchronize está el uso de secciones críticas. Saludos cordiales. ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Utilizar componentes de formulario en procedimiento | leogobo | OOP | 2 | 27-05-2011 06:24:36 |
| Procedimiento Almacenado UPDATE no se ejecuta | Rockin | Firebird e Interbase | 25 | 25-05-2010 20:04:50 |
| cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace | robertosc | Varios | 1 | 14-08-2007 22:11:09 |
| procedimiento en un hilo independiente | jorodgar | Varios | 2 | 04-08-2005 10:18:11 |
| Intraweb: LLamar desde javascript a un procedimiento de un formulario | Brewster | Internet | 0 | 03-07-2004 12:52:17 |
|