FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error en Thread (hilo) Android
Buenas tardes, tengo un trozo de código que recorre los registros de una tabla de memoria y para cada uno de ello hace un insert en una base de datos. Al ejecutarlo en android lo ejecuta bien pero tarda alrededor de 10 segundos y me sala un mensaje en pantalla de que la aplicación no respònde y me pide esperar o aceptar.
Mirando en el foro, vi que lo mejor era hacer un hilo. El código del hilo lo creo en un bottonclick.
el programa no recorre los registros de la tabla de memoria, me sale el mensaje Sincronizacion de clientes completada. 0 clientes traspasados. Y seguidamente se va llenando la barra de progreso. Podéis echarme una mano a ver que estoy habiendo mal.? Muchas gracias, un saludo. |
#2
|
|||
|
|||
Hola jmbarrio.
Tuve un problama parecido, echa un vistazo a este hilo. Los consejos de dani36652, me ayudaron a resolver el problema. Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#3
|
|||
|
|||
Hola Johnalone, lo que estuve viendo fue esa ayuda que comentas. Pero es que no se que hago mal en el código ya que no recorre los registros de la tabla de memoria.
Gracias, un saludo. |
#4
|
||||
|
||||
Hola,
prueba a poner FDMemTable1.First al principio del todo. Todo supone que se cumple la condición FDMemTable1.Eof y no recorre el bucle. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#5
|
||||
|
||||
Cita:
Tampoco vale, coger el código "antiguo", pasarlo a un thread y esperar que funcione (tal vez sí, pero no suele ser lo habitual). Lo primero decir, que las operaciones con Bases de Datos en threads, en según qué casos requieren conexiones diferenes. Por ejemplo, en ADO no puedes usar la misma conexión en 2 threads, porque el componente de conexión no es "thread-safe";En el caso de Firedac hay que mirar bien las especificaciones, porque también tiene sus partocularidades (https://docwiki.embarcadero.com/RADS...ading_(FireDAC)). En segundo lugar, veo que estás accediendo a componentes directamente desde el thread que están definidos "fuera" (F_data, FDMemTable1, contador); Almenos yo no los veo ahí. Ese acceso te va a dar problemas, puesto que lo estás haciendo sin sincronizar. Este código no tiene sentido:
El ShowMessage va a salir nada más iniciar el proceso, no al final.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
|||
|
|||
Cita:
Gracias, un saludo. |
#7
|
|||
|
|||
Cita:
Gracias. un saludo |
#8
|
||||
|
||||
Cita:
Prueba con el evento OnTerminate del TThread. Aunque sigo pensando que este es el menor de tus problemas. Creo que si no cambias código ese thread te va a dar problemas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
Cita:
Hasta la próxima. Un saludo a tod@s |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Thread Firemonkey Android query | amadis | FireMonkey | 2 | 23-09-2020 13:04:03 |
Se puede evitar cerrar un thread o hilo | DarkSton | Varios | 6 | 14-07-2017 18:47:54 |
Error: terminate thread timeout | ppalmamichi | Varios | 0 | 21-08-2012 21:03:47 |
Error en mi Thread | Paulao | Varios | 3 | 16-02-2011 16:36:08 |
Thread bendito thread...se me pierde la ventana | Seba.F1 | API de Windows | 5 | 02-02-2006 01:16:30 |
|