![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola Amigos,
Acá voy luchando con un nuevo problema... Tengo el siguiente código en un click text button: Código:
int j; for (int i=1;i<=27000;i++) { j = CaptaSeñal(); Edit1->Text= i; } ¿Es posible hacer esto? Es por ello que recurro a Uds, si pudieran darme algun consejo al respecto del uso de Application->ProcessMessages, o talves otra opción que uds conozcan... De antemano muchas gracias. Un Saludo. |
#2
|
||||
|
||||
Mientras desconozco sobre C++ y librerias en esa plataforma, existen 2 soluciones universales para operar en estos casos.
Aunque existan "trucos" para hacer parecer que la app funciona bien, siempre terminas encontrando un cuello de botella (excepto en los casos triviales) ya que la mayoria del codigo es sincronico y "bloquea" por defecto por cada llamada. La primera, es usar un hilo "de fondo" que va enviando los resultados a la GUI. Hay muchos ejemplos de uso de hilos, y para casos simples es una opcion viable. PERO, si requieres un manejo ligeramente complicado puede resultar dificil (y el problema de los hilos es que no es obvio ni predecible que muro te encontraras). La segunda, es operar de forma asincronica. Junto a una cola (http://es.wikipedia.org/wiki/Cola_(inform%C3%A1tica)) con un procesador de colas. Una liberia con la que experimente alguna vez y permite operar un procesador de colas embeido es http://www.zeromq.org/intro:read-the-manual. Lo elegante de esta via, es que un procesador de colas es una pieza de software muy eficiente en manejar cantidades grandes de mensajes, operar en ellos y de una forma mas intuitiva que el manejo de hilos (los procesadores de colas pueden o no manejar internamente esos hilos). Mira la guia de 0mq, en especial el metodo de PUB-SUB (Publica-Suscribe) http://zguide.zeromq.org/cpp:wuclient P.D: Windows tiene un sistema masomenos parecido usando "windows messages" http://www.delphitricks.com/source-c...ndmessage.html, que puede resulte aun mas facil que hilos. Pero si piensas manejar mucho este caso de uso y realmente necesitas poder aguantar cuanta cantidad de datos te puedas imaginar, 0mq es una mucho mejor opcion (los mensajes de windows estan hechos para comunicar eventos en la GUI, ppalmente).
__________________
El malabarista. Última edición por mamcx fecha: 23-01-2013 a las 04:04:47. |
#3
|
|||
|
|||
Gracias por la respuesta...
Sabia que tarde o temprano tendría que entrarle a los hilos... pero no tan temprano... ![]() Y ahora que lo veo "0mq" -vaya nombrecito, por poco y pense que era un "error de dedo" ![]() un saludo. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con Application.ProcessMessages | jandro | Varios | 5 | 21-01-2010 15:36:14 |
Application.ProcessMessages; | Stevenmn | API de Windows | 3 | 24-02-2008 19:02:34 |
Tthread Vs. Application -> ProcessMessages(); | Peterman | Varios | 8 | 31-05-2007 03:05:03 |
Problema con Application.ProcessMessages | Coco | API de Windows | 0 | 25-02-2005 15:28:44 |
No funciona Application.ProcessMessages | Sr_Sombrero | Varios | 0 | 24-01-2005 22:21:01 |
![]() |
|