Ver Mensaje Individual
  #23  
Antiguo 25-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 30
jachguate Va por buen camino
Cool

Hola. Creo que hay un problema de terminología por aqui.

Cita:
Empezado por elcigarra
El problema era la estrategia, yo utilizaba valores de las variables del componente padre del thread.
El thread, como tal, y en la jerga de la vcl, no tiene un "padre" (parent), ni un "dueño" (owner). Asi que aunque vos le otorgues la paternidad a alguien, este no es un término que ayude a entendernos.

Cita:
Empezado por elcigarra
Tu ejemplo crea una variable de tip TComponent que pertenece al thread...
Nuevamente, el "progress" del ejemplo de Crandel no pertenece al thread como tal. Mas bien está referenciado por un miembro de este. (Y se espera que cada instancia particular de TProgressThread apunte a una instancia distinta de algún componente en su propiedad "progress". (no he analizado lo suficiente el código para saber que ocurriría si esto no se cumple).

Cita:
Empezado por elcigarra
Así funciona perfecto. Gracias de nuevo... a todos
Para aclarar finalmente el punto, esta independencia que permite que funcione perfecto, es porque cada thread accede a propiedades o miembros (variables) de distintas instancias de objetos.
Nada impide que distintos hilos de ejecución consulten o modifiquen valores de cualquier dirección de memoria accesible al proceso (incluso propiedades de otros threads)... y precisamente en hacer que este acceso se de de manera controlada consiste la programación "thread-safe", puesto que dos hilos podrian confundirse al usar las mismas variables (tu caso) o machacar el trabajo de otros threads (también tu caso ).

Cita:
Empezado por elcigarra
Gracias Crandel!!! Te debo una cerveza.
Y yo... ¿que?

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita