Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   AntiFreeze en aplicación en C++ (https://www.clubdelphi.com/foros/showthread.php?t=50496)

8051 20-11-2007 14:47:42

AntiFreeze en aplicación en C++
 
Saludos compañeros! :D

Me explico de forma breve.Tengo una aplicación en Builder C++ desde la que se ofrecen varios servicios para elegir, botones, menus e información en pantalla.

El caso es que durante unos intervalos de tiempo preprogramados la aplicación ataca mediante consultas a una DB-Interbase alojada en un servidor externo y la pantalla del programa se congela, se queda fija (o en blanco) y el puntero del ratón cambia al reloj de arena indicando que el programa esta ocupado. Cuando termina el proceso de consulta, el programa vuelve a estar accesible y todo sigue normal.

Me gustaría establecer varios niveles de prioridades para intentar que la aplicación no se quede congelada mientras se realizan las consultas. ¿Teneis alguna idea? ¿Hay alguna forma de establecer prioridades de ejecución a las distintas funciones de los objetos?

Espero haberme explicado bien.
Muchas gracias de antemano.

dec 20-11-2007 15:04:09

Hola,

Puedes investigar sobre distintos "hilos" de ejecución. En Delphi un hilo parte de la clase "TThread", y, supongo que lo mismo en C++ Builder. O tal vez, simplemente, baste conque des algún respiro a la interfaz del programa. Esto puedes conseguirlo con el método "ProcessMessages" de "Application". Algo así:

Código Delphi [-]
begin
  while true do begin
    // Hago algo que va a paralizar la interfaz

    // Fuerzo el proceso de los mensajes de la aplicación
    Application.ProcessMessages();
  end;
end;

8051 23-11-2007 21:45:26

Muchas gracias dec ;)
Ya estoy echando algun ojo con más tiempo a los Threads :D muy interesante por el tema prioridades, que personalmente echaba en falta acostumbrado a la programación en micros de 8-16 bits

Un saludo


La franja horaria es GMT +2. Ahora son las 07:49:47.

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