TsgcWebSocketServer_HTTPAPI › Methods › ShareList
Acquisisce un blocco condiviso (in sola lettura) sull'elenco delle connessioni interno e lo restituisce per l'enumerazione concorrente.
function ShareList: TList;
Il TList attivo delle istanze TsgcWSConnection detenute dal server. Il chiamante deve trattare l'elenco come di sola lettura e deve rilasciare il lock chiamando UnShareList al termine. (TList)
ShareList acquisisce il lock SRW (Slim Reader/Writer) interno della lista in modalità condivisa, consentendo a più thread di enumerare la tabella delle connessioni contemporaneamente senza bloccarsi a vicenda. Lo utilizzi quando deve solo leggere lo stato delle connessioni (iterare, contare, cercare un GUID) — è significativamente meno costoso di LockList, che acquisisce il lock di scrittura esclusivo e serializza l'accesso. Non aggiunga, rimuova o modifichi mai elementi mentre tiene il lock condiviso; passi invece a LockList. Ogni chiamata a ShareList deve essere abbinata esattamente a una chiamata a UnShareList, idealmente all'interno di un blocco try..finally, altrimenti la lista rimane bloccata e non è possibile registrare nuove connessioni.
oList := oServer.ShareList;
try
for i := 0 to oList.Count - 1 do
DoSomething(TsgcWSConnection(oList[i]));
finally
oServer.UnShareList;
end;