FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Genial , el multi threading es todo un tema , es bien avanzado , me va gustar estudiarlo , ¿ que es mas rapido o cual se nota mas rapido o se tilda menos en la aplicacion usar "Application.ProcessMessages" o hacer multithreading ?
|
#2
|
||||
|
||||
Vuelvo a reiterar: Application.ProcessMessages no es programacion multi-hilo. No evita que tu programa se bloquee
Es un HACK (si, mayuscula, subrayado y negrita), es analogicamente comparable a una instruccion goto, a herencia multiple, etc. En el único caso en el que te puede llegar a ayudar en algo (escribo esto muy a mi pesar..) es en un bucle que tarda mucho en ejecutarse (llamemosle tiempo total) pero que cada iteracion es razonablemente rapida Por que? Considera este codigo (exagerado)
Si se ejecuta ese fragmento de codigo en un evento OnClick de un boton, hasta que no termina de ejecutarse la aplicacion esta tildada.
El mismo codigo, pero ahora agregamos la linea magica al final del bucle. El hecho de sumar dos numeros es una operacion muy rapida, obviamente hacerla trillones de veces va a demorar algun tiempo; pero cada una sola operacion es rapida. Entonces, sumo un numero y luego proceso los mensajes que recibio la aplicacion; en este caso la aplicacion no va a parecer tildada Ahora considera este codigo:
Ja! ahi no tenes quien te salve. Donde pones el ProcessMessages? Lo que te quiero decir es lo que comento mas arriba German: Si queres llamar procesos, o calcular valores intermedios que tardan cierto tiempo, abrir un query, etc; el ProcessMessages no te puede ayudar Entonces lo ideal es aprender a utilizar threads. Es cierto, es muy dificil, pero para la gran mayoria de las tareas, si programamos bien, es relativamente sencillo Sobre todo con las bibliotecas que he comentado mas arriba. Omni implementa el Async.Await que todos los chicos de .NET adoran; la System.Threading de XE7 tambien lo vuelve relativamente sencillo. Y aunque dependas pura y exclusivamente de la clase TThread, tampoco es tan complicado Tambien recorda que esta este foro para ayudarte Yo creo que cuanto antes te subas al barco del multi-thread, mejor: adaptar un programa grande mas adelante para convertirlo en multi-hilo puede ser un hueso muy duro de roer. Y guste o no, es el futuro de la programacion. De nada sirve que la gente gaste dinero en procesadores multi-core si nosotros los programadores no los aprovechamos |
#4
|
||||
|
||||
Cita:
Hablando en serio... Creo que ya lo han comentado. Es que no es lo uno o lo otro. No tienen nada que ver y no se usan para las mismas cosas. No es que puedas escoger entre lo uno o lo otro. (1) "Application.ProcessMessages" simplemente se pone en un lugar del programa para dar tiempo a procesar mensajes. (2) Usar threads, significa que programas un proceso completo de tu aplicación en un hilo diferente. Los threads son para una cosa, el "Application.ProcessMessages" para otra. Cita:
En el caso del tercero, no opino, porque no se exactamente a qué te estás refiriendo.
__________________
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
|
||||
|
||||
Si que sirve, para que vaya muchísimo más lento que si no se pusiera
|
#6
|
||||
|
||||
Cita:
Cierto...
__________________
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 |
Threads y DataModule | brandolin | OOP | 5 | 20-10-2011 21:33:31 |
uso de threads | JULIPO | API de Windows | 2 | 25-07-2007 16:09:06 |
Threads in DLL's | Gianni | Varios | 0 | 20-07-2007 22:18:23 |
threads multihilo | walito | API de Windows | 5 | 13-06-2007 19:34:26 |
uso del WaitFor() en Threads | chalitox | Varios | 7 | 06-09-2006 23:34:56 |
|