TsgcWebSocketServer_HTTPAPI › Metody › ShareList
Uzyskuje współdzieloną blokadę (tylko do odczytu) na wewnętrznej liście połączeń i zwraca ją do współbieżnego wyliczania.
function ShareList: TList;
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)
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ń.
oList := oServer.ShareList;
try
for i := 0 to oList.Count - 1 do
DoSomething(TsgcWSConnection(oList[i]));
finally
oServer.UnShareList;
end;