FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Hilos: Excepcion al cerrar la aplicacion
Buen día para todos, llevo 2 días tratando de agregar un Hilo a mi aplicacion para realizar un proceso de copiado de archivos. Me explico un poco, estoy desarrollando un sistema el cual tenga la posibilidad de enviar a un servidor archivos que fueron grabados de forma local y temporal en el equipo. Este proceso quiero que se ejecute sin que mi aplicacion se detenga a que termine el proceso, por lo tanto lo metí a un hilo. El problema es el siguiente, el hilo se ejecuta correctamente, es decir, si copia los archivos si es que existen, pero cuando cierro mi aplicacion me genera una excepcion de memoria (Access Violation). La verdad es que no tengo experiencia con hilos, en realidad es mi primer hilo, por lo tanto pido de su ayuda para localizar mi ERROR. Les anexo mi codigo. (cabe señalar que la excepcion solo ocurre cuando si encontro y copio los archivos)
Unidad donde declaro el hilo:
Y esto es lo que tengo declarado en el formulario principal:
Como podrán ver hago la prueba de la ejecucion del hilo cuando doy doble clic a la forma. ustedes siempre me sacan de broncas, por favor ayudenme nuevamente!!! ya me comienza a doler el coco... Gracias y saludos!!! |
#2
|
||||
|
||||
Hola ElGatitoTapatio.
El error que estas recibiendo no se debe a la ejecución del Thread. Puede provocarlo el código invocado dentro del método EnviarDocumentos o bién otro ajeno a la unidad uHilos, códigos que en ambos casos no puedo evaluar. Verificarlo esto es muy simple. Basta con hacerte otra unidad en la que quites todo lo foráneo a la ejecución del Thread y respetes el resto. Por ejemplo: Y luego verás que se lo puede llamar una o n veces que no presenta ningún error durante o al cerrar la aplicacion:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 31-05-2013 a las 23:40:41. |
#3
|
|||
|
|||
ecfisa Gracias por tu respuesta, creo me queda claro lo que me explicas, ahora mi pregunta es como puedo darme cuenta del problema especifico para corregirlo?, creo que me podria contestar solo borrando partes del codigo y ejecutando, pero creo que es una pista el que, si ejecuto los mismos procedimientos fuera del hilo corren perfectamente, solo cuando los meto al hilo es el problema.... alguna idea que se les ocurra para tomar camino por ese lado?
|
#4
|
||||
|
||||
ElGatitoTapatio,
Cita:
El código anterior sugiere un mecanismo de control para la finalización ordenada del hilo en función del problema planteado, sin embargo te sugiero probar lo indicado en el Msg #2 y hacer los ajustes que sean necesarios. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 01-06-2013 a las 00:29:45. |
#5
|
|||
|
|||
nlsgarcia Gracias por los comentarios, de entrada me sirve para aprender mas sobre los hilos, por otra parte lo estaré probrando y les aviso.
|
#6
|
||||
|
||||
Cita:
Aunque no pareciera ser el causante del problema, y por las dudas, probá de este modo para asergurarte que WNetCancelConnection2 se ejecute:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Bueno aqui estan mis conclusiones:
1.- Probé lo que me sugirió el compañero nlsgarcia, lamentablemente me siguió marcando error. 2.- Y pues me di a la tarea de ir comentando codigo y probando y llegué al problema, la funcion XDel. Esta funcion la estoy importando o tomando u oteniendo o como de se diga de una DLL que utilizo en mi proyecto, mi solucion fue sacar esa funcion de la dll y agregarla a la unidad del Hilo y efectivamente santo remedio. Como no me gusta quedarme con la espinita dentro, alguien me podria explicar porque pasa esto cuando desde un hilo utilizo funciones de librerias externas? digo cosas tontas que se me ocurren es que al liberar el hilo se libere la dll o algo asi, pero ustedes son los expertos. Alguien sabe la respuesta? Como comentario quiero decir que tambien probe utilizando mas funciones de la dll y efectivamente cuando hago esto es cuando me sucede el error. Agrego la funcion solo como +info.
Y les agradeszo nuevamente por su valiosa ayuda! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Aplicacion Delphi lanza Excepcion 0x0eedfade | Sieg | Varios | 4 | 29-07-2010 14:10:21 |
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 | Gaby123 | API de Windows | 5 | 04-01-2007 22:44:51 |
Aplicacion con varios Hilos de Ejecución | samantha jones | Varios | 1 | 02-03-2005 17:27:24 |
Cerrar Aplicacion | Nathan | API de Windows | 3 | 22-03-2004 19:03:43 |
|