Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Threads - Zugriff auf Listen und Variablen (https://www.delphipraxis.net/56336-threads-zugriff-auf-listen-und-variablen.html)

BlueDiamond 4. Nov 2005 08:48


Threads - Zugriff auf Listen und Variablen
 
Hallo zusammen,


für die Verteilung von Thread-Jobs nutze ich Threadlisten und CriticalSections. Wird der Zugriff auf diese immer abgearbeitet wenn bereits ein anderer Thread zugreift? Hier ein Beispiel für eine Funktion :

Delphi-Quellcode:
function TJobList.isClientInList(aIP: TbCardinal): bool;
var
  l:   TList;
  a: integer;
begin
  Result := False;
  l     := fList.LockList;
  try
    for a := 0 to l.Count - 1 do
      if TClient(l.Items[a]).IP.i = aIP.I then
      begin
        Result := True;
        break;
      end;
  finally
    fList.unlockList;
  end;
end;
Zugriff innerhalb des Threads :
Delphi-Quellcode:
if not formMain.JobList[FListIndex].isClientInList(newCLientIP) then
  if not formMain.DoneList[FListIndex].isClientInList(newCLientIP) then
    formMain.JobList[FListIndex].AddClient(TClient.Create(newCLientIP, newClientPort.I));
Mir scheint das nicht alle neuen TClients hinzugefügt werden, daher mein Verdacht dass wenn die Liste gelockt wurde, kein Zugriff mehr gegeben wird.
Kann das jemand ausschließen ?

BlueDiamond 8. Nov 2005 15:42

Re: Threads - Zugriff auf Listen und Variablen
 
Stelle die Fragen mal anders ;)

1.) Wartet ein anderer Thread beim Aufruf von isClientInList auf die Ausführung oder wird bei gelockter Liste diese Funktion übersprungen ?
2.) Gilt dies auch bei CriticalSections ? (Warten auf Ausführbarkeint)


Danke für eure Antworten.

Gruß BlueD

mumu 8. Nov 2005 15:48

Re: Threads - Zugriff auf Listen und Variablen
 
bei CriticalSections wird auf jeden Fall gewartet, bis der andere Thread den Abschnitt verlassen hat.

alzaimar 8. Nov 2005 16:31

Re: Threads - Zugriff auf Listen und Variablen
 
... und locklist wartet auch ...

BlueDiamond 8. Nov 2005 16:44

Re: Threads - Zugriff auf Listen und Variablen
 
Danke euch! Damit wäre das geklärt.

Dann ist jetzt Feierabend ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz