• Viernes 8 de Noviembre de 2024, 22:54

Autor Tema:  Acceso a punteros desde Threads  (Leído 1211 veces)

KAYSS

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Acceso a punteros desde Threads
« en: Lunes 3 de Agosto de 2009, 21:40 »
0
Hola a tod@s!

Mi problema es que necesito acceder desde el método, que va a ejecutar como un thread y por tanto es estático, a un artributo de la clase que es un puntero a una imagen, lo cual me dice al compilar que no es posible.

Cómo podría acceder a este atributo que es un puntero desde el thread?

Gracias y saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Acceso a punteros desde Threads
« Respuesta #1 en: Lunes 3 de Agosto de 2009, 21:58 »
0
Los hilos reciben un parametro, cuando creas el hilo podes pasar el puntero al objeto de la clase en cuestion que estes usando.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

KAYSS

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Acceso a punteros desde Threads
« Respuesta #2 en: Martes 4 de Agosto de 2009, 08:56 »
0
Cita de: "Eternal Idol"
Los hilos reciben un parametro, cuando creas el hilo podes pasar el puntero al objeto de la clase en cuestion que estes usando.

Muchas gracias,

Me has solucionado el problema con uno de los hilos.

Sin embargo, en otro de los thread necesito acceder a varios atributos de la clase que son punteros y de este modo únicamente puedo pasarle uno.

Gracias y saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Acceso a punteros desde Threads
« Respuesta #3 en: Martes 4 de Agosto de 2009, 09:33 »
0
No, de este modo podes pasar un puntero al objeto, con lo cual podes acceder a todos sus miembros.

Digamos que tenes:

Código: C++
  1. Clase *c; //un puntero a un objeto tu clase, usaste new en algnun momento para crear el objeto
  2.  

Entonces creas el hilo:
Código: C++
  1. CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Hilo, (LPVOID)c, 0, 0);
  2.  

Y en el hilo:
Código: C++
  1. DWORD WINAPI Hilo(LPVOID lpParameter)
  2. {
  3.   Clase *c = (Clase*)lpParameter;
  4.   c->loQueSea;
  5.   c->otraCosa();
  6. }
  7.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

KAYSS

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Acceso a punteros desde Threads
« Respuesta #4 en: Martes 4 de Agosto de 2009, 11:55 »
0
Cita de: "Eternal Idol"
No, de este modo podes pasar un puntero al objeto, con lo cual podes acceder a todos sus miembros.

Digamos que tenes:

Código: C++
  1. Clase *c; //un puntero a un objeto tu clase, usaste new en algnun momento para crear el objeto
  2.  

Entonces creas el hilo:
Código: C++
  1. CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Hilo, (LPVOID)c, 0, 0);
  2.  

Y en el hilo:
Código: C++
  1. DWORD WINAPI Hilo(LPVOID lpParameter)
  2. {
  3.   Clase *c = (Clase*)lpParameter;
  4.   c->loQueSea;
  5.   c->otraCosa();
  6. }
  7.  


Muchas gracias,

Ya me queda todo más claro.

Gracias y saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Acceso a punteros desde Threads
« Respuesta #5 en: Martes 4 de Agosto de 2009, 12:01 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.