[Lazarus-es] Formulario no refresca en ciclos grandes

Ismael L. Donis Garc?a ismael en citricos.co.cu
Mar Dic 29 15:34:56 CET 2009


No, no lo puedo hacer en un proceso independiente, debe ser en el proceso 
principal. Lo que necesito es transferir el proceso a los otros sistemas de 
forma temporal o refrescar el formulario interciclo para evitar que la 
aplicación se maree ya que el sistema no debe dejar hacer nada más hasta que 
no termine esa operación. Así que no me sirve el multihilo o multihebra.

Saludos a to2s
=========
¦¦ ISMAEL ¦¦
=========
"Oír o leer sin reflexionar es una ocupación inútil".
               Confucio (551-479 a. C.); filósofo chino.

----- Mensaje original ----- 
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: lunes, 28 de diciembre de 2009 04:06
Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes


Hello christian,

Monday, December 28, 2009, 10:38:20 PM, you wrote:

cO> intenta algo como
cO> application.processmessage
cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras)
cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es

Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente
de manera indiferente.

Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos
"básicos":

Proceso:
-------------
A) El código tiene una zona de programa común (todas las copias del
mismo proceso comparten el código).
B) La zona de datos es diferent para cada proceso.
C) Stack independiente para cada proceso.

Thread o Hilo
-------------
A) El código es común entre todos los procesos iguales e hilos
iguales.
B) Zona de datos común para todos los hilos de un mismo proceso.
C) Stack independiente para cada hilo.

Fiber o hebra
-------------
A) El código es común entre todos los procesos iguales, hilos y
hebras iguales.
B) Zona de datos común para todos los hilos y hebras de un mismo
proceso.
C) Stack común para todos.

Esto implica que la multitarea en una hebra o "fiber" no es posible
del mismo modo que con un "thread", y esta ha de ser "cooperativa" al
igual que lo eran los threads y los procesos en Win 3.1.

La ventaja de la hebra sobre el thread es que hacer un "task
switching" no requiere poner el procesador en modo "context switch" lo
que requiere muchos ciclos, ya que todo el proceso se realiza en el
modo "usuario" o "ring 3".

Windows creo que soporta hebras desde Vista en adelante, pero
programar con hebras es para artistas :)

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list