![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Voy a checar lo de Synchronize haber si me ayuda, y Kipow no quiero saber el porcentaje solo quiero que el progressbar se este moviendo infinitamente como si fuera el cursor de reloj de arena para saber que se esta ejecutando y cuando termine ya parar el progressbar
|
|
#2
|
|||
|
|||
|
ok ise este ejemplo de la sincronizacion
pero nunca se detiene, en cambio si le hago asi si
que podra estar mal? Última edición por Dark_RavenM fecha: 23-01-2009 a las 17:51:44. |
|
#3
|
||||
|
||||
|
Lo que pasa es que el el primer código, por estar dentro de un synchronize, todo el código de existe en "adentlabarra" se ejecuta a como si estobien en el hilo principal. Por esta razón, cuando llegas a la línea "while ... do" la variable count ya está en 1.
Ahora, cual es la direfencia respecto al segundo código: bien, luego de crear el nuevo hilo, la aplicación sigue su ejecución normal, como si nada la detuviese, pero por el contrario el hilo queda dormido por dos segundos ("sleep(2000)"). Luego de esto, cuando el hilo llega a asignar un valor a la variable cont, la aplicación principal ejecutó "while ... do" hace dos segudos. No me he explicado bien, es un problema sencillo, pero lo he encontrado difícil de explicar. Sin embargo, comparando ambos código, creo que puedo determinar cual es tu intención: Utilizando el segundo código, con una ligerisimo modificación, lo que hace el anterior código es hacer mover el progressbar de la aplicación durante 2 segundos. Saludos. |
|
#4
|
|||
|
|||
|
ok, ya le cambie, ahora para ejecutar el query como podria hacerle?, por que por ejemplo ise este codigo
pero nisiquiera ejecuta el query se va directo al exception estoy haciendoalgo mal? |
|
#5
|
||||
|
||||
|
No debes estar haciendo nada mal, por el contrario. Lo que debe susceder es que los componentes que estás utilizando para hacer la conexión a la DB no son "Thread Save", es por esta razón que generan una ecepción, que supongo debe ser de tipo AV. Desde este punto, lo único que puedes intentar hacer es desconectar de cualquier componente TDatasource al que esté conectado el componente de conexión.
Por otro lado, también puedes intentar co un try ... except, auque creo que con la mayoría de componentes de conexión esto no es recomendable hacerlo. Saludos. |
|
#6
|
||||
|
||||
No si "script" es una variable, o es un objeto que esta ubicado en algún formulario. Si es el último caso, las anteriores líneas deben estar dentro de un procedimiento del Thread que sea llamado con synchronize:
Lo puedes llamar así:
Saludos.- |
|
#7
|
|||
|
|||
|
un objeto que cree dentro del hilo
type TBarra = class(TThread) private sesion:TOracleSession; script:TOracleScript; protected procedure Execute; override; public end; |
|
#8
|
|||
|
|||
|
Cita:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con Hilos de ejecucion | kurono | Varios | 19 | 15-01-2011 15:36:40 |
| Hilos | johurgi | Varios | 2 | 16-07-2007 10:57:08 |
| Ayuda Con Hilos(Threds) | juangiron | OOP | 1 | 04-05-2007 19:46:24 |
| ver hilos | Cosgaya | Varios | 1 | 07-06-2005 20:35:16 |
|