Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como analizar los archivos de una ruta recursivamente usando hilos? (https://www.clubdelphi.com/foros/showthread.php?t=95880)

JoAnCa 22-09-2022 21:30:33

¿Como analizar los archivos de una ruta recursivamente usando hilos?
 
Hola a todos
Estoy creando una herramienta de limpieza de restos de virus, quisiera hacerla usando hilos para que funcione mas rápido, pero no estoy muy claro en como funciona el tema de los hilos

El algoritmo de mi herramienta es:
- Buscar recursivamente todos los archivos de la ruta especificada (en un hilo)
- Si el archivo es de las siguientes extensiones (.exe, .txt, .vbs o .lnk) pasarlo al proceso de análisis (otro hilo)
- Si cumple los patrones buscados agregarlo a una lista
- Después el usuario podrá seleccionarlos para eliminar los seleccionados o todos

No se si estará bien mi análisis, pero lo que quiero es que mientras se este analizando el archivo la búsqueda continúe.

cloayza 23-09-2022 04:41:49

Creo que en la sección trucos hay algo que de seguro le servirá, es Cola de elementos multi-thread
Saludos cordiales

Neftali [Germán.Estévez] 23-09-2022 09:20:48

Yo creo que no vas desencaminado.
Simplificando mucho, puedes tener la lista en el hilo principal y tener 2 threads:

* Uno para la búsqueda de ficheros que vaya añadiendo ficheros a la lista.
* Otro que realice el análisis de un fichero.

La app. principal (thread principal) debe lanzar el thread de búqueda (1) y a medida que van apareciendo elementos en la lista, debe ir lanzando el thread de análisis (1..N) para cada elementos encontrado.

NOTA: Si la búsqueda es sobre un espacio muy grande, se puede plantear el thread de búsqueda comno N.

bucanero 23-09-2022 11:34:46

1 Archivos Adjunto(s)
Cita:

Empezado por cloayza (Mensaje 548420)
Creo que en la sección trucos hay algo que de seguro le servirá, es Cola de elementos multi-thread
Saludos cordiales

Hola a todos!!
ese truco es una de las forma de realizar lo que JoAnCa solicita.

Adjunto un ejemplo especifico para su uso en las búsquedas de ficheros/directorios con multithread.

En las pruebas que yo he realizado se obtiene una mejora a partir de los dos/tres hilos. Si se intenta utilizar mas de cinco hilos el tiempo ya se incrementa bastante con respecto a no hacerlo con hilos, pero es cuestión de probarlo en cada caso particular.

JoAnCa 23-09-2022 16:50:07

Muchas gracias a todos por sus respuestas
Muy bueno el truco de bucanero, lo adecuaré a mis necesidades


La franja horaria es GMT +2. Ahora son las 11:51:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi