Thema: Delphi Multithreading

Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Multithreading

  Alt 25. Sep 2008, 17:59
Zitat von NormanNG:
Thread-Execute wird im o.g. Fall wie eine "normale" Prozedur ausgeführt -
es passiert also kein "Freigeben während er noch läuft".
Das würde ich so nicht unterschreiben - ich habe letztens eine Anwendung geschrieben, bei der ich auch von dieser Tatsache ausgegangen bin. In den meisten Fällen ist auch genau das passiert, was du beschrieben hast - ab und zu ist jedoch Anwendung mit einer Zugriffsverletzung abgestürzt.

Erst als ich in meinem Code noch ein "WaitFor" und ein "Terminate" eingeschoben hatte lief es ohne Probleme:
Delphi-Quellcode:
for i := 0 to High(Threads) do
begin
  Threads[i].Terminate;
  Threads[i].WaitFor;
  FreeAndNil(Threads[i]);
end;
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat