Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#1

TTask.Run Problem, der Task läuft nicht flüssig im Hintergrund

  Alt 21. Apr 2020, 10:37
Delphi-Version: 10.3 Rio
Hallo zusammen,

in dem Beispiel-Code wird aus Excel Daten in eine Generics TObjectList<T> eingelesen. Das funktioniert auch so wie soll, allerdings lasse ich einen ActivityIndicator mitlaufen der aber nicht flüssig durchläuft mal komplett stehen bleibt usw.. Die Frage ist jetzt warum ist das so und wie kann man das Ändern?

Delphi-Quellcode:
TTask.Run(
      Procedure
      var
        i: integer;
      begin
        begin
          TThread.Queue(NIL,
          Procedure
          begin
            Memo1.Lines.add('Thread-Beginn ' + TimeToStr(Now));
          end);
       try
          for i := 0 to ExcelZeilen -1 do
          begin
            TThread.Synchronize (NIL,
              Procedure
              begin
                frmArtikelListe.gArt_Liste.Add(i +1,
                  EXCEL.ZellenInhalt(i + 1,1), EXCEL.ZellenInhalt(i + 1, 2));
              end);
          end;
        except
          TThread.Queue(NIL,
            Procedure
            begin
              Memo1.Lines.add('Fehler ' + TimeToStr(Now));
            end);
        end;
        TThread.Queue(NIL,
          Procedure
          begin
            Memo1.Lines.add('Thread-Ende ' + TimeToStr(Now));
            EXCEL.free;
            ActivityIndicator1.Animate := FALSE;
            GridAusgabe;
          end);
        end;
      end);
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat