PDA

Ver la Versión Completa : Ping en segundo plano


toorbye
19-10-2006, 10:00:03
Hola estoy haciendo una aplicación que cada cierto tiempo mediante un TTimer hace un ping usando el componente TIDIcmpClient a varias, ips .
El problema radica que mientras esta haciendo el ping, a todas las ip’s el programa se queda congelado, no permitiéndome trabajar sobre el.
Como puedo solucionar esto, como puedo hacer que se ejecute en ping en segundo plano sin interferir en el resto de la aplicación.
Un saludo

ErnestoCarrera
19-10-2006, 10:10:12
Buenas, igual es una tontería, pero bueno, la suelto por si acaso:

Supongo que el ping a las ip lo harás dentro de un bucle que recorre todas las ip´s y les hace un ping. si es así, ¿tienes un application.processmessages en ese bucle?.
Si no lo tienes, la aplicación se quedará "colgada"mientras ejecuta el bucle ese y no podrás trabajar con ella.

A ver si hay suerte y te vale esto, si no, siempre puedes hacer el ping en un hilo a parte

Neftali [Germán.Estévez]
19-10-2006, 10:28:13
Revisa ejemplos sobre threads. Creo que en las demos de Delphi viene alguno. Si no encuentras nada dilo y te subo algunos.
Creo recordar que aquí en los foros en alguna ocasión también se ha subido algun ejemplo; Haz una búsquueda.

toorbye
19-10-2006, 10:29:16
Si que lo tengo, pero cuando intento cerrar la aplicacion se me queda... Supongo que resolveria bien con el uso de hilos, pero no me aclaro muy bien, estoy buscando información por que nunca los he necesitado.

Neftali [Germán.Estévez]
19-10-2006, 10:53:37
...pero cuando intento cerrar la aplicacion se me queda...

Si estás trabajando con hilos, antes de cerrar debes ver el estado de los hilos y en todo caso detenerlos. No puedes cerrar la aplicación "a la brava" con los hilos funcionando.

toorbye
19-10-2006, 13:52:32
Hola de nuevo, googleando un poco encontre un ejemplillo en este hilo.
http://groups.google.es/group/borland.public.delphi.internet.winsock/browse_thread/thread/e0e233ed568acbb/a7534e5ca91e53ab?lnk=st&q=ping+indy+thread&rnum=1&hl=es#a7534e5ca91e53ab

E intentado llevarlo a acabo, pero cuando ejecuto el hilo me da un error de acceso a memoria.
Alguien lo puede probar, para ver si realmente funciona.
Gracias