Cita:
Empezado por Ike0
Por lo que leo, los hilos o Threads, pueden ayudarme a hacer las llamadas a cada evento Onreply paralelamente pero no se como hacerlo.
|
La operación de ping, al igual que muchas otras, el problema que tiene es que durante su ejecución detiene el programa. La llamada en si, no el código que se ejecuta en el OnReply.
Por lo tanto, lo que ganamos ejecutando threads es que al poner la tarea que "bloquea" en el thread, se bloquea ese thread, pero no el programa principal.
Lo primero que debes hacer es crear el componente TIdIcmpClient por código. Modifica tu programa para hecerlo y comprueba que funciona.
Una vez lo tengas se trata de crear un thread que:
(1) En el
create cree el componente por código.
(2) Le tendrás que pasar algunos valores como parámetro y luego recoger la respuesta.
(3) En el métdo
Execute lanzar el
ping.
(4) Capturar el On
Reply dentro del Thread
(5) Crear un procedimiento
OnTerminate, al que irá a parar el thread cuando acabe, que será el que pinte verde/rojo según el estado.
Puedes realizar algunas pruebas e ir poniendo el código aquí. Te lo vamos revisando y corrigiendo si hare falta.