Estimado
juank1971:
No te diré donde es mejor utilizar utilizar hilos de ejecución, pero te contaré mi experiencia.
También tenía procesos que enlentecían mi programa y generaban unas esperas eternas y lo solucioné justamente utilizando los threads. Intenté crear los threads con el ThreadObject que trae Delphi y no logré jamás hacerlos funcionar (Yo soy menos que novato). Instalé los componentes TBMDThreadSet de Mitov, que son gratuitos y se pueden descargar de este
link y me solucionaron todos los problemas.
Yo incluí los procesos que enlentecían la aplicación en el BMDThreadExecute y los llamo con BMDThread1.Start. Puedo asignarle acciones en los eventos Start, Terminate y Update y unir varios threads con el TBMDThreadGroup que incluyen estos componentes.
Te quiero señalar además que el uso de Application.ProcessMessages si bien permite la fluidez de algunos procesos, en mi caso la mayoría de las veces los hacían más lentos y luego de leer este
artículo me decidí a eliminar la mayoría de ellos y dejar sólo los que consideré indispensables.
Espero haber sido de alguna ayuda.
Salu2