Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#7

Re: Absolue DB - Anwendung hängt trotz Thread Zugriff

  Alt 16. Apr 2009, 11:27
In TBlobThread.Execute wird direkt auf Elemente der VCL zugegriffen.
frmMain.Image1.Picture.Bitmap.SaveToStream(BlobStream); Das ist nicht zulässig und kann sogar zum Absturz der Anwendung führen.
Und so etwas geht im Thread überhaupt nicht:
ShowMessage('SaveRichEditToDB Operation completed'); Übergib dem Thread beim Erzeugen statt dessen einen Stream (z.B. einen TMemoryStream oder TFileStream) der die zu speichernden Daten enthält oder die zu lesenden Daten aufnimmt. Das hat auch den Vorteil, dass die Implementierung im TBlobThread nicht von der Art der Daten abhängt.
Wärend der TBlobThread mit dem Stream arbeitet darf der Hauptthread natürlich nicht auf den Stream zugreifen.
FreeOnTerminate ist auch keine so gute Idee, da eine Überprüfung ob die Aktion noch läuft, so nicht möglich ist.
  Mit Zitat antworten Zitat