![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola neftali, pues si que hay diferencia si, voy a seguir haciendo mas pruebas a ver si puedo sacarle partido a los hilos, la verdad es que... siendo filosofico (jaja) los hilos me resultan hirientemente útiles, lo de hirientes es por que o lo haces bien o a la menor oportunidad te darán la "patada"
Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#2
|
||||
|
||||
|
Hola buenas de nuevo,
a ver segun entiendo, en un hilo no deben haber referencias a componentes visuales, pero en ese caso, si las operaciones de un procedimiento incluyen que se vaya mostrando información ¿como seria? ¿el hilo debería devolver el control a un procedimiento para "pintar" la informacion en una etiqueta (por ejemplo) y luego este procedimiento devolver el control al hilo para continuar? ¿eso sería así, pasandose el control de uno a otro hasta terminar? iba a poner un ejemplo real de la situación que tengo entre manos, pero son muchas lineas y no me deja, así que lo adjunto a este mensaje. Tengo este procedimiento... ... que hace la llamada al procedimiento adjunto, ¿que parte del procedimiento debe estar fuera del hilo y cual dentro? Un saludo y gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#3
|
||||
|
||||
|
Cita:
Yo no he dicho que: "en un hilo no deben haber referencias a componentes visuales" Mis palabras fueron las siguientes: Eso se traduce en que desde dentro de un hilo no puedes acceder "alegremente" a componentes y código que tengas fuera de él..." "Es decir, desde dentro del hilo, NO PUEDES llamar "directamente" a un botón del formulario (Form1.Button4.Enabled)...." "...por lo tanto tenemos que asegurarnos que cuando accedemos desde el thread a "elementos externos" lo hagamos de forma exclusiva." Creo que la diferencia es evidente. SI se puede acceder a elementos externos como componentes, pero NO SE PUEDER HACER DIRECTAMENTE. Debes hacerlo utilizando Synchronize.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#4
|
||||
|
||||
|
Cita:
Pero eso que parece tan complicado, se hace utilizando Synchonize de forma fácil.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#5
|
||||
|
||||
|
Cita:
* principal.Memo1 * principal.LabEdit1 * principal.opc1. * principal.Memo2 ... Estos elementos deberías estar como parámetros, porque en este procedimiento está "mezclando" lógica de negocio con temas visuales. O te lo planteo de otra forma; Imagina que debes usar este procedimiento de TrocearArchivo llamándolo desde un programa que no tiene formularios. ¿Puedes hacerlo?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
||||
|
||||
|
Hola neftalí,
a ver contesto desde mi ignorancia, a tu pregunta... que yo sepa se puede llamar a un programa desde otro, por lo que deduzco que si un programa x está formado unicamente por un procedimiento sin formularios (en este momento estoy pensando en una aplicacion de consola), otro programa podrá invocarlo o llamarlo sin problemas, así que mi respuesta es si. Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#7
|
||||
|
||||
|
El tema de los hilos es bastante complicado, ya que si dos hilos diferentes acceden al mismo tiempo al mismo dato puede haber problemas (por ejemplo que los dos intenten escribir a la vez, o que uno escriba y otro lea al mismo tiempo y por lo tanto los datos de quien lee estén corruptos por pillarlo a media escritura). Por ello hay que entender y usar los métodos y funciones de sincronización correctamente.
Respecto a la los componentes de la VCL, estos suelen ejecutarse en el llamado "hilo principal", por lo que otros hilos deben acceder a ellos de forma sincronizada.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#8
|
||||
|
||||
|
Cita:
Crea un programa, con un formulario vacío y pon un botón que llame al procedimiento: TrocearArchivo(labEdit1.Text,2048) ¿Que pasará? Que falla en compilación porque el propio procedimiento hace referencia a controles visuales. A eso me refería. Esas referencias a objetos deberían estar como parámetros.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear Hilos de Ejecución con TIdFTP | JAI_ME | Varios | 12 | 13-12-2013 18:28:39 |
| Ayuda con Hilos de ejecucion | kurono | Varios | 19 | 15-01-2011 15:36:40 |
| Problema con hilos de ejecucion | gueritox | OOP | 1 | 14-08-2010 15:26:06 |
| Hilos de ejecucion | el toluca | Varios | 2 | 29-06-2004 22:59:04 |
|