Einzelnen Beitrag anzeigen

Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

[Thread] Deadlock verhindern

  Alt 4. Okt 2004, 22:28
Hi!

Mit diesem Code setze ich einen Thread auf suspended:

Delphi-Quellcode:
procedure TImgStdListView.SuspendThread;
begin
  if FThumbnailThread.Suspended then
    Exit
  else
  begin
    FThumbnailThread.RefreshNow(nil);
    while not FThumbnailThread.Suspended do
      Delay(300);
  end;
end;
Nun treten sporadisch ab und zu Deadlocks auf. Der ThumbnailThread hat an 2 oder 3 Stellen Synchronize-Aufrufe. Ich vermute der Deadlock tritt auf, wenn der Thread gerade Synchonize(Main-Methode) ausführt, die main-Methode aber auf suspended wartet. Zumindest kreise ich in der Delay-Schleife wenn mal wieder nichts geht. Gibt es da spezielle Techniken wie man an das Problem herangehen kann?

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat