Ver Mensaje Individual
  #1  
Antiguo 12-09-2012
LIGERO LIGERO is offline
Miembro
 
Registrado: jun 2007
Posts: 42
Reputación: 0
LIGERO Va por buen camino
Problemas con Hebras

Buenas tardes amigos foreros:

Tengo un programa con una hebra que hace grabaciones en una base de datos sql server cada cuarto de hora y para ello utilizo la hebra.

Ver código.

Código Delphi [-]
unit Hebras;

interface

uses
  Classes;

type
  THebraCuartoHora = class(TThread)
      grabar : boolean;
      constructor Create; reintroduce; overload;
      procedure Execute; override;

  end;


var HebraCuartoHora : THebraCuartoHora;

implementation

 uses DateUtils, sysutils, globales, BBDDCogeneracion, logging;


constructor THebraCuartoHora.Create;
begin
   // llamamos al constructor del padre (TThread)
   inherited Create(True);
   grabar := true;

end;

procedure THebraCuartoHora.Execute;
var ahora: TdateTime;
    minutos, segundos : integer;


begin
  inherited;
  while not TerminarPrograma do
  begin
    ahora := now;
    minutos := MinuteOf(ahora);
    segundos := SecondOf(ahora);
    if ((minutos mod 15) = 0) and (segundos = 0) then
    begin
      // Incrementamos el contador de segundos y actualizamos la etiqueta
      if (grabar = true) then
      begin
        grabar := false;
        logger.log(elInfo,'::::::::::: Grabando Cuartos de Hora :::::::::::');
        try
          //InitializeCriticalSection(SeccionCritica);
          GrabaCuartosHora(ahora);
          //DeleteCriticalSection(SeccionCritica);
          logger.log(elInfo,'::::::::::: Cuartos de Hora Grabados :::::::::::');
        except
          logger.log(elerror,'******** Error Grabando Cuartos de Hora ********');
          grabar := true;
        end;
      end;
    end
    else
      grabar := true;
  end;
end;
end.

El problema es que la cpu se pone a 100% y baja bastante poco.

Qué puedo hacer.

Última edición por Casimiro Notevi fecha: 12-09-2012 a las 16:49:42.
Responder Con Cita