Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Datenkopie für Thread anders erzeugen

  Alt 27. Apr 2009, 12:07
Moin !

Ok ich gebe zu der Titel ist etwas merkwürdig, aber ich wills mal erklären

Also ich habe im Anhang mal eine ganz einfache Anwendung hinzugefügt. Die macht nix anderes als per Thread ein Bild bzw. einen MemoryStream auf Platte zu speichern.
Nun muss man ja irgendwann mal den Thread einrichten und mit Daten versorgen. Das passiert hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var BlobThread : TTestThread;
begin
  BlobThread := TTestThread.Create();
  Image1.Picture.Bitmap.SaveToStream(BlobThread.Stream);
  BlobThread.Priority := tpLower;
  BlobThread.Resume;
end;
Das funktioniert soweit auch alles. Allerdings läuft die Zeile ...
Image1.Picture.Bitmap.SaveToStream(BlobThread.Stream); ... ja im MainThread ab.

Und meine Frage wäre nun ob es eine Möglichkeit gibt, das dieser Teil unabhängig vom MainThread abläuft.
Denn wenn man dort mal eine größere Bilddatei mit speichern will, dann hängt der Main Thread so lange wie die Kopie erzeugt wird.

Die Anwendung ist übrigens nichts wirklich sinnvolls. Mir gehts da eher um das Prinzip.
Angehängte Dateien
Dateityp: zip threadtest_159.zip (558,9 KB, 1x aufgerufen)
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat