Einzelnen Beitrag anzeigen

JohannesK

Registriert seit: 17. Jul 2003
Ort: Abtwil
118 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Unterschiede TTimer zwischen Delphi 7 und 2010?

  Alt 7. Jul 2015, 15:20
Zitat:
OT: Ist TSaveThread wirklich eine Ableitung von TThread? Dann finde ich die Verwendung - insbesondere den Aufruf von Execute - ziemlich gewagt.

Abgesehen davon, wartest du ja sowieso in der repeat-Schleife auf die Beendigung des Threads. Warum dann überhaupt ein Thread?
Der Thread deshalb, damit sich verschiedene Gruppen beim Abspeichern nicht über die Timeraufrufe in die Quere kommen.
Ich bin zugegebnermassen nicht besonders Thread-sicher , warum ist der Aufruf von execute gewagt (ist aber auch schon ein bisschen off-topic).

Delphi-Quellcode:
  TSaveThread = class(TThread)
     private
       ExecGroup: TSavetimer;
    protected
       procedure execute; override;
      function DoSave: boolean;
    public
       constructor Create(aItem: TSavetimer);
      destructor destroy; override;
  end;

procedure TSaveThread.execute;
var itdata: PItemidentify;
    srv: TPrOPCClientReader;
    n: string;
    p: integer;
    m, m1: integer;
begin
 try

  with ExecGroup do
    begin
      if not GetTimeAllow then exit; // Prüfungen ob gespeichert werden soll
      if not GetTriggerAllow then exit;
    end;

    terminate;

  finally
    terminate;
  end;
end;
mit freundlichem Gruss

So einfach wie möglich. Aber nicht einfacher.

Geändert von JohannesK ( 7. Jul 2015 um 15:25 Uhr)
  Mit Zitat antworten Zitat