FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Agregarle parametros al metodo Execute de TThread
hola estoy comenzando la programacion por hilos y ando un poco enrredado en esto:
tengo la siguiente declaracion:
el asunto es que al compilar me da el error: Cita:
Gracias
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#2
|
||||
|
||||
investigando un poco encontre este mensaje de Neftali
Override y Virtual la duda sigue porq sengun entendi si lo coloco virtual pierdo la herencia del ancestro
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
||||
|
||||
Que yo sepa, no puedes.
En la clase TThread, ya está puesto como Virtual y abstract: - Por Virtual, ya puedes hacer un override del método. - Por abstract, no puedes dejar su implementación vacía, si lo haces, en ejecución obtendrás una excepción "abstract error". Dicho esto, puedes sobreescribir (override) el método, pero no puedes cambiar los parámetros, ni si quiera con overload; Solución a este paradigma, crear un método nuevo:
Desde ExecuteWithIndex llamas a Execute tu método que sobreescribe el heredado. Dentro de Execute si puedes usar inherited;
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
||||
|
||||
Cita:
Si ahora vas a crear otra clase que hereda de TCompararMd5, sugiero que hagas virtual el ExecuteWithIndex, el Execute lo dejas tal cual, es decir: Cuando ahora llames a Execute, se ejecutarán en este orden: TCompararMd5V2.Execute que al llamar a inherited ejecutará: TCompararMd5.Execute que al llamar a inherited ejecutará: TThread.Execute Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
pues entonces si es verdad lo que investigue
otra solucion que he rebuscado es lo siguiente, en la unit tengo el objeto del formulario y el hilo, si comparto una variable global alli puedo compartir la informacion entre los dos objetos. Solo queria asegurarme si mi resultados eran correctos porq nunca he trabajado con hilos
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#6
|
||||
|
||||
Editado: veo que ya te han propuesto una solución parecida a esta... Ops! :P
Si realmente necesitas llamar el execute con parámetros, entonces emula el exeute con un proceso tuyo, con lo cual sí podrás pasarle parámetros... Ejemplo:
El código puede tener alguna errata, porqué lo he hecho de memoria sin probarlo xD Pero seguro que entiendes la idea xD Saludos. Última edición por xEsk fecha: 09-11-2007 a las 21:54:05. |
#7
|
||||
|
||||
gracias Xesk, estaba pensando en algo similar. He quedado en algo como esto:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#8
|
||||
|
||||
¿no debería ser así?:
Si es una variable que va a usarse dentro de un Thread, debe ser ThreadSafe. Aunque no veo el asunto claro. Estas creando una clase TCompararMd5 que a partir de un índice abre un archivo. ¿no sería mejor crear una propiedad en el Thread llamada Filename? así no se comparte información entre el hilo y su padre, además nos permitiría reusar la clase sin modificarla. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#9
|
||||
|
||||
No termino de comprender si nIdx debe compartir su valor entre los diferentes hilos o no, mejor revisa tú mismo si debe ser threadvar o no.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
||||
|
||||
Disculpa la demora pero estaba revisando la ayuda acerca de threadvar y si es lo que necesito, muchisimas gracias
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tthread Vs. Application -> ProcessMessages(); | Peterman | Varios | 8 | 31-05-2007 03:05:03 |
TThread y cerrar una ventana previamente abierta | gluglu | OOP | 1 | 14-05-2007 19:19:54 |
Execute Immediate | jjarias | Firebird e Interbase | 3 | 27-04-2006 15:14:07 |
Como Liberar un Tthread???? | AGAG4 | Varios | 3 | 25-04-2005 22:16:40 |
Lio con TThread | diegofhernando | Varios | 0 | 20-01-2004 17:58:35 |
|