Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como crear una aplicacion multihilo (https://www.clubdelphi.com/foros/showthread.php?t=53835)

kurono 02-03-2008 19:08:21

Como crear una aplicacion multihilo
 
hola amigos del foro me e enterado que delphi 7 puede crear programas multihilos y tengo entendido que estos programas son aprovechados por los procesadores de doble nucleo yo tengo un procesador de doble nucleo y me gustaria ver como se comporta un programa multihilo como puedo hacerlo y cuales son los paso a llevar

Neftali [Germán.Estévez] 02-03-2008 19:18:04

Pudes empezar por leer sobre la Clase TThread que ofrece Delphi y que te facilitará el trabajo.
Si buscas en los foros encontarás ejemplos de threads y en mi página web, sección de ejemplos, también puedes encontrar alguno sencillo. Están con código fuente, así que puedes revisarlo y modificarlo.

kurono 02-03-2008 19:20:45

ok gracias leere la pagina

kurono 03-03-2008 02:12:22

amigo neftaly vi el ejemplo del programa multihilo que tienes en tu pagina pero quiero saber si entendi ese programa lo que hace es asignar una aplicacion a los procesos multihilos para se ejecute mejor que como ejemplo pusiste tu misma pagina como pude verlo en el codigo fuente o previamente ese `programa muetra los procesos que se estan ejecuntandose como multihilo me gustaria que me explicara eso tengo esa duda

Neftali [Germán.Estévez] 03-03-2008 11:39:33

No entiendo muy bien a qué te refieres.
El ejemplo del que hablo se llama "Ejemplo sobre Threads".

Lo que se hace ahí es programar diferentes tareas en hilos independientes. Básicamente lo que hace un Hilo/Thread es ejecutar una parte de tu aplicación de forma independiente. En un hilo diferente.

Si quieres añadir hilos a tu aplicación, debes estudiar las parte de tu programa que puedes ejecutar en un hilo independiente. Normalmente aquellas que hacen que el programa quede "parado". Si consigues que ese código se ejecute "a parte" evitarás esos "parones" en tu programa.

Tareas independientes, procesos batch,...

kurono 03-03-2008 17:47:12

dejame ver si entendi lo que se puede ejecutar en un hilo indenpendiente son aquellas parte del programa que dejan parado la aplicacion como por ejemplo un repeat en el cual espera una determinada ejecucion para detenerse de lo contrario seguira ejecutandose es lo que quieres decir dime si estoy en lo correcto neftaly

Neftali [Germán.Estévez] 03-03-2008 18:26:39

Bueno, no se trata del Repeat (bucle) se trata de lo que hagas dentro.

Imagina que tu aplicación debe grabar a disco o copiar un fichero. Si este es grande, tardará unos segundos. Si tu programa puede continuar sin necesidad de que esa operación acabe, puedes pasarla a un Thread aparte (es una única operación). La clave está en que el código que sigues ejecutando no dependa de esa operación que vas a realizar en el Trhead.

Imagina que lanzas un listado que tarda en generarse bastante tiempo. Puedes lanzarlo e intentar ejecutar eso en un thread independiente. De esa forma tu programa no tendrá que esperar a que se genere.

Como ves no tienen porqué ser muchas operaciones. Lo que realmente importa es que el código que coloques en el Thread sea de alguna forma independiente del resto del programa, para que tu programa siga ejecutándose, sin necesidad a esperar que ese código acabe.

No se si acabo de explicarme bien...:o

kurono 03-03-2008 21:11:46

ok ahora si entendi gracia neftali

casacham 19-04-2008 04:43:15

Claro como el agua
 
Recien, y a causa de una necesidad, fui a dar con esto de los hilos ya que estoy haciendo una aplicacion de bases de datos en la que cada tanto, segun lo programa el usuario, se realiza de forma automatica una copia de seguridad de la base de dato. Resulta que la base de datos se compone de un archivo que contiene la estructura y los datos (como es usual) y de un directorio donde preferi guardar las fotos para no hacer pesado el archivo de base de datos, de alli la necesidad que el proceso automatico de copia de seguridad sea puesta en un hilo aparte. Creo que el concepto y la utilidad se aplica exactamente a esta función de mi programa. Escribo esto para que el que leea algo sobre TRhread sepa paraque puede servir y para darte las gracias por tu sencilla explicacion

Delfino 20-04-2008 19:08:13

Cita:

Pudes empezar por leer sobre la Clase TThread que ofrece Delphi y que te facilitará el trabajo
Tambien pueden facilitar el trabajo algunos componentes como el TIdThreadComponent de los Indy o el TJvThread y el TJvThreadTimer de la JVCL


La franja horaria es GMT +2. Ahora son las 13:26:53.

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