TsgcWebSocketServer_HTTPAPIMetody › ShareList

ShareList Metoda

Uzyskuje współdzieloną blokadę (tylko do odczytu) na wewnętrznej liście połączeń i zwraca ją do współbieżnego wyliczania.

Składnia

function ShareList: TList;

Wartość zwracana

Aktywna lista TList zawierająca wystąpienia TsgcWSConnection utrzymywane przez serwer. Kod wywołujący musi traktować listę jako tylko do odczytu i musi zwolnić blokadę, wywołując UnShareList po zakończeniu pracy. (TList)

Uwagi

ShareList przejmuje wewnętrzną blokadę SRW (Slim Reader/Writer) listy w trybie współdzielonym, umożliwiając wielu wątkom jednoczesne przeglądanie tabeli połączeń bez wzajemnego blokowania. Należy jej używać, gdy wymagany jest wyłącznie odczyt stanu połączenia (iterowanie, liczenie, wyszukiwanie po identyfikatorze GUID) — jest to znacznie tańsze niż LockList, która przejmuje wyłączną blokadę zapisu i serializuje dostęp. Nie wolno dodawać, usuwać ani modyfikować elementów przy utrzymywanej blokadzie współdzielonej; zamiast tego należy użyć LockList. Każde wywołanie ShareList musi być sparowane z dokładnie jednym wywołaniem UnShareList, najlepiej wewnątrz bloku try..finally, w przeciwnym razie lista pozostanie zablokowana i nie będzie można rejestrować nowych połączeń.

Przykład


oList := oServer.ShareList;
try
  for i := 0 to oList.Count - 1 do
    DoSomething(TsgcWSConnection(oList[i]));
finally
  oServer.UnShareList;
end;

Powrót do metod