Einzelnen Beitrag anzeigen

moelski

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

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

  Alt 16. Apr 2009, 11:49
Moin !

Ok ich habe nun den Thread umgebaut:
Delphi-Quellcode:
  TBlobThread = class(TThread)
  private
    FOperation : TBlobOperation;
    FSession : TABSSession;
    FDatabase : TABSDatabase;
    FTable : TABSTable;
  protected
    procedure Execute; override;
  public
    ThreadData : TMemoryStream;
    constructor Create(Operation: TBlobOperation);
    destructor Destroy; override;
  end;
Beim Erzeugen des Threads ist das hinzugekommen:
  ThreadData := TMemoryStream.Create;
Delphi-Quellcode:
procedure TfrmMain.Button2Click(Sender: TObject);
var
  BlobThread: TBlobThread;
begin
  BlobThread := TBlobThread.Create(boSavePICTUREToDB);

  // Thread die Daten geben
  BlobThread.ThreadData.Position := 0;
  frmMain.Image1.Picture.Bitmap.SaveToStream(BlobThread.ThreadData);

  BlobThread.Priority := tpLower;
  BlobThread.Resume;
end;
Und hier das Speichern:
Delphi-Quellcode:
      begin
         FTable.Edit;
         try
           BlobStream := FTable.CreateBlobStream(FTable.FieldByName('Picture'),bmWrite);
           ThreadData.SaveToStream(BlobStream);
           ThreadData.Free;
           BlobStream.Free;
           FTable.Post;
         except
           FTable.Cancel;
         end;
      end;
Aber im Ergebnis ändert sich nix. Wenn ich ein bischen in der Oberfläche rumklicke (solange der Thread rennt), dann hängt irgendwann die Hauptanwendung komplett. Und zwar so lange bis das der Thread beendet wurde.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat