Thema: Delphi TWorkerthread fertig?

Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: TWorkerthread fertig?

  Alt 3. Okt 2008, 18:40
Der ThreadPool weiss selbst nicht, wann auch der letzte Job seine Arbeit beendet hat, das stimmt. Grundsätzlich ist das ja nicht die Aufgabe des Threadpools, denn dieser verteilt die Arbeit nur. Natürlich wäre es interessant, aber imho ist das die Aufgabe der Jobs: Verwalte einen threadsicheren Zähler, der beim .Create deiner Jobs hoch- und beim .Destroy wieder heruntergezählt wird. DAS wäre dann der Zähler, wie viele Jobs noch arbeiten.

Threadsicher wird eine Variable immer dann, wenn sichergestellt ist, das immer nur ein Thread Schreibzugriff auf die Variable hat. Dazu kannst Du eine CriticalSection nehmen, oder Du schaust Dir die Funktion 'InterlockedIncrement' und 'InterlockedDecrement' an
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat