Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Problem mit TImage

  Alt 29. Jun 2016, 19:16
Das passiert ja auch alles threaded, aber wenn du dieses schöne Nebeneinander wieder durch eine Synchronisierung in ein Hintereinander presst, dann hat es sich eben mit dem Nebeneinander erledigt.

Hier ein kleines Minimal-Beispiel:
Delphi-Quellcode:
procedure WillBeCalledFromAThread( foo: TFoo );
var
  i:Integer;
begin

  // ** Im Thread

  // Ganz was Aufwändiges berechnen
  Sleep( 5000 );
  // unser Ergebnis
  i := 1;

  // Das Ergebnis in der Form anzeigen, das dürfen wir aber nur synchronisiert
  TThread.Synchronize( nil,
    procedure
    begin

      // ** Im MainThread

      // Berechnung hier?
      // Sleep( 5000 ); // <- würde das Programm für den Benutzer für 5 Sekunden blockieren
      // also doof, lieber vorher berechnen, da stört es nicht

      MyForm.ListBox.Items.Add( IntToStr( i ) );
    end);

  // ** Im Thread

  // nochwas machen?
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (29. Jun 2016 um 19:19 Uhr)
  Mit Zitat antworten Zitat