Einzelnen Beitrag anzeigen

Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Handle count erhöht sich permanent

  Alt 22. Okt 2014, 11:19
Das Erstellen von Threads geschieht im selben Thread, wie dein Löschen?
Wenn nicht, warum gibt es hier dann keine Syncronisierung/Threadabsicherung?

Was macht du in deinen Threads?
Wenn die Threads intern nichts machen (leeres Execute usw.), gehen die Handle dann auch noch hoch?
Der ThreadTask wird ausserhalb erstellt
und der TaskListe im Threadpool hinzugefügt.
Der ThreadTask wird suspended erstellt.

Delphi-Quellcode:
function TThreadpool.addTask(task: TThreadTask): Boolean;
begin
  fCriticalSection.Acquire;
  result := false;
  if fTaskList.Count < fMaxTaskList then
    begin
      fTaskList.Add(task);
      result := true;
    end;
  fCriticalSection.Release;
end;
Im Threadpool wird der ThreadTask dann gestartet, wenn ein Platz in fRunningTasks frei ist.

Auch wenn der Threadtask nichts ausführt, erhöht sich die Anzahl der Handles wie vorher auch.

Grüße
Klaus
Klaus

Geändert von Klaus01 (22. Okt 2014 um 11:36 Uhr)
  Mit Zitat antworten Zitat