Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Server im LAN finden mittels IdTCPClient

  Alt 29. Mai 2007, 23:16
Hi,

Dein Thread-Code ist nicht Thread-Safe !!!!!!!!!!!

Deine Function GetNextJob muss innerhalb einer CriticalSection laufen,
den überleg mal was passiert wenn 2 oder mehr Threads gleichzeitig GetNextJob aufrufen.

Außerdem prüfst Du ob das Ende der Jobliste erreicht ist indem Du .ount der Stringliste prüfst,
das ist so auh nicht Threadsafe.
Da solltest Du, um beim Deinem jetzigen Code zu bleiben, Deine TJoblist um eine Function isEmpty : Boolean erweitern.
In dieser Function darfst Du auch nur innerhalb der CritialSection auf .Count der TStringList zugreifen.

Das war nur ne "optimierung" auf die Schnelle, das kann man noch schöner machen

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat