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.
