Thema: Delphi Thread Terminate Problem

Einzelnen Beitrag anzeigen

xman
(Gast)

n/a Beiträge
 
#1

Thread Terminate Problem

  Alt 23. Feb 2005, 11:35
Hallo zusammen.


Ich habe ein kleines Thread Problem und ich hoffe der Thread Experte Luckie und auch alle Anderen mir weiterhelfen können.


Folgende Situation:

Delphi-Quellcode:
//Create Thread
  dateiname:=s.strings[n];
  tEncrypt := TEncryptionThread.Create(true);
  tEncrypt.Priority := tpNormal;
  tEncrypt.FreeOnTerminate := true;
  tEncrypt.fInFileName := dateiname;
  tEncrypt.fPassphrase := g_key;
  tEncrypt.execute;

Delphi-Quellcode:
//execute proc
procedure TEncryptionThread.execute;
var
  DCPCipher: TDCP_blowfish;
  source, dest: TFileStream;
  temp:string;
begin
  temp:='_tmp';
  RenameFile(fInFileName,fInFileName+temp);
  dest := TFileStream.Create(fInFileName, fmCreate);
  fInFileName:=fInFileName+temp;
  source := TFileStream.Create(fInFileName, fmOpenRead);
  DCPCipher := TDCP_blowfish.Create(nil);
  DCPCipher.InitStr(fPassphrase, TDCP_sha512);
  DCPCipher.EncryptStream(source, dest, source.size);
  DCPCipher.Burn;
  dest.Free;
  source.Free;
  DeleteFile(fInFileName);
  FreeAndNil(DCPCipher);
  tEncrypt.Terminate;
end;

Das sind die beiden Prozeduren um die es geht.

Ich möchte das der Thread sich nach seiner Abarbeitung beendet.
Ich versuche das durch tEncrypt.terminate doch leider beendet sich der Thread nicht, zumindest steigt die Threadanzahl im Taskmanager immer weiter an. Oder ist das normal?

WaitForSingleObject kann ich eigentlich ausschließen da der Thread mehrere Minuten laufen kann, oder habe ich die Funktion falsch verstanden?


Wäre super wenn ihr mir kurz unter die Arme greifen könntet.



Aber bitte nicht sagen das man Create Thread nicht verwendet! Ich weiß es!

Danke
mfg xman
  Mit Zitat antworten Zitat