Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra cosa más, que tal vez es evidente, pero la comento.

La primera opción que se nos ocurre a veces es coger un gran trozo de código que ya tenemos, crear un hilo, copiarlo dentro y meterlo en un Synchronize.
Eso funcionará, pero el problema es que TODO el código que esté en un Synchronize, se ejecuta de forma "bloqueante"; Es decir, por lo que he comentado antes, cuando se ejecuta un método que se llama desde un Synchronize, la ejecución del hilo prinicipal se detiene, para evitar problemas, por lo tanto si TODO el código de un hilo lo ponemos en un Synchronize NO ESTAMOS GANANDO NADA.

Lo habitual es que las tareas del hilo "grandes" o "que ocupan la mayor parte del tiempo", se ejecuten en un proceso (sin Synchronize), y los métodos que se usan con Synchronize sean pequeños en tiempo de ejecución (normalmente para actualizar interface, como por ejemplo barras de progreso,...).

Si buscas en los foros o si revisas mi web, encontrarás varios ejemplos de threads con código. Si los revisas verás cómo es la estructura y cómo se ejecuta el método Synchronize para actualizar componentes (progresos, labels,...) dentro del thread.
__________________
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.
Responder Con Cita
  #2  
Antiguo 31-10-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 15
danielmj Va por buen camino
Hola Neftali,

Perdona por tardar en contestar. Tienes razón, fue que mirando aquí y allí, y cogiendo un poco de esto y un poco de lo otro, salio un "guiso" amargo. Pondré en practica eso que dices de usar los threads solo para procesos menores (actualizar tal o cual componente). En cuanto a dejar el proceso que tarda mas tiempo fuera del hilo, imagino que al meter los procesos de la barra de progreso, el memo etc dentro del thread, también podre minimizar la ventana sin problemas ¿o estoy equivocado? no sé igual parece una tonteria, pero eso de no poder minimizar por que está todo "congelado" me desespera bastante y me refiero a mi aplicación.
Lo de tu página la tengo en favoritos y me leere el tema de los dichosos hilos, la verdad es que me gustaría sino dominar su funcionamiento, al menos si poder trabajar con ellos sin problemas.

Sobre lo de ser adivinos y tal, es culpa de mi desconocimiento del tema, conocer algo es la base para una buena explicacion o presentacion de un problema, y como no sabía como exponer bien el asunto con los hilos de marras, pues bueno... me expresé lo mejor que supe y pido disculpas si no fue suficiente.

Bueno, dicho esto me pongo con el temita este a ver si lo aclaro ya. Muchas gracias y saludos a todos!
Responder Con Cita
  #3  
Antiguo 31-10-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por danielmj Ver Mensaje
(1) Pondré en practica eso que dices de usar los threads solo para procesos menores (actualizar tal o cual componente).
(2) En cuanto a dejar el proceso que tarda mas tiempo fuera del hilo, imagino que al meter los procesos de la barra de progreso, el memo etc dentro del thread, también podre minimizar la ventana sin problemas ¿o estoy equivocado? no sé igual parece una tonteria, pero eso de no poder minimizar por que está todo "congelado" me desespera bastante y me refiero a mi aplicación.
Perdona. Tal vez no me he explicado bien, porque esto que comentas no es lo que quería decir.

(1) Los threads puedes usarlos para todo tipo de procesos, sean costosos o no. El hecho de poner algo dentro del hilo te permite que el programa no tenga que esperar a que ese proceso acabe y pueda continuar haciendo otras cosas.

Dentro del hilo hay cosas que se ejecutan en el RUN (es la ejecución propia del hilo) y cosas que se ejecutan usando SYNCHRONIZE (también dentro del hilo, pero usando este método).
Lo que interactue con elementos de la VCL o con "cosas" que tengas definidas fuera del hilo, deben hacerse mediante SYNCHRONIZE, el resto del proceso en el RUN.

(simplificando mucho)

Un saludo.
__________________
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar cadena de conexion a tadoconnections dentro de un hilo de ejecucion richy08 OOP 4 02-08-2010 23:49:32
como crear un hilo de ejecucion ayudenme plis!!! jazmin OOP 4 21-06-2010 09:55:13
cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace robertosc Varios 1 14-08-2007 22:11:09
Dudas Crear Objetos en Tiempo de Ejecución Deiv OOP 9 09-08-2007 01:13:15
Parar un hilo de ejecución deivi Varios 6 21-11-2006 13:36:49


La franja horaria es GMT +2. Ahora son las 01:26:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi