![]() |
Como Liberar un Tthread????
Aqui ando de nuevo, alguien sabe como liberar un Hilo????, lo creo de la siguiente manera:
Pero cuando el Compilador llega a la línea de Commit dentro del procedimiendo "PROCESO" se CUELGA la Aplicación..... No permiten en los hilos hacer procesos de Base de Datos, bien los componentes IBX no son recomendados en el uso de Hilos???? Agradezco cualquier sugerencia. |
Algunas sugerencias
¡Buen día a todos!
Alfredo: Que yo sepa no existe conflicto alguno entre los componentes IBX y el uso de hilos alternos. Aunque ciertamente me gustaría hacer algunas observaciones: Cuando dices que el compilador se detiene, me parece que en realidad te refieres al depurador (al estar ejecutando el programa que ya fue compilado). Bien, en estos casos es recomendable sincronizar el hilo alterno, para evitar conflictos de memoria:
Por otra parte, si lo que deseas es que cada cierto tiempo se comentan (commit) a la base de datos los cambios pendientes, te sugiero establecer un valor de 250 milisegundos en la propiedad Transaccion.IdleTimer y un valor de taCommitRetaining en la propiedad Transaccion.DefaultAction (establecimientos que se pueden realizar con el inspector de objetos). Si de todas formas necesitas crear un hilo alterno, puedo sugerirte que consideres utilizar la clase TghThread como lo explico en el tema Timers. Te ahorra mucho del trabajo sucio que implica montar correctamente un hilo de ejecución alterno. Espero esto sea de utilidad, seguimos en contacto. Al González. :) |
ok....
Muchas Gracias Al González, por sus consejos, los voy aplicar, es sólo que quería estar informado de porque al llegar al Commit se me queda colgada la aplicación.
Que tenga Buen día. ... |
????
Ya lo Probe como me comento añadiendo el Synchronize al PROCESO,
pero de todas formas se CUELGA al llegar al Commit.Y respecto a lo otro, no ocupo hacer Commit's cada cierto tiempo, lo que tengo es, que cada vez de que se active en FireBird un Evento(IbEvent) en cierta Tabla, se crea el HILO.... Agradezco su respuesta. |
La franja horaria es GMT +2. Ahora son las 08:02:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi