TsgcWebSocketServer_HTTPAPI › Métodos › ShareList
Adquire um lock compartilhado (somente leitura) na lista interna de conexões e a retorna para enumeração concorrente.
function ShareList: TList;
A TList ativa de instâncias TsgcWSConnection mantida pelo servidor. O chamador deve tratar a lista como somente leitura e deve liberar o lock chamando UnShareList ao terminar. (TList)
ShareList adquire o bloqueio SRW (Slim Reader/Writer) interno da lista em modo compartilhado, permitindo que vários threads enumerem a tabela de conexões ao mesmo tempo sem se bloquearem. Utilize-o quando você só precisar ler o estado da conexão (iterar, contar, buscar um GUID) — é significativamente mais barato que LockList, que adquire o bloqueio de gravação exclusivo e serializa o acesso. Nunca adicione, remova ou altere itens enquanto estiver com o bloqueio compartilhado; faça upgrade para LockList em vez disso. Cada chamada a ShareList deve ser pareada com exatamente uma chamada a UnShareList, idealmente dentro de um bloco try..finally, ou a lista permanece bloqueada e novas conexões não podem ser registradas.
oList := oServer.ShareList;
try
for i := 0 to oList.Count - 1 do
DoSomething(TsgcWSConnection(oList[i]));
finally
oServer.UnShareList;
end;