TsgcWebSocketServer_HTTPAPI › Methods › ShareList
获取内部连接列表上的共享(只读)锁并返回以供并发枚举。
function ShareList: TList;
服务器持有的 TsgcWSConnection 实例的实时 TList。调用方必须将列表视为只读,并在使用完毕后调用 UnShareList 释放锁。(TList)
ShareList 以共享模式获取列表的内部 SRW(Slim Reader/Writer)锁,允许多个线程同时枚举连接表而不互相阻塞。当您只需要读取连接状态(迭代、计数、通过 GUID 查找)时,应使用此方法——它比 LockList 的代价显著更低,后者获取独占写锁并序列化访问。持有共享锁时切勿添加、删除或修改项目;如需此类操作,请改用 LockList。每次调用 ShareList 都必须与一次 UnShareList 调用配对,最好放在 try..finally 块中,否则列表将保持锁定状态,无法注册新连接。
oList := oServer.ShareList;
try
for i := 0 to oList.Count - 1 do
DoSomething(TsgcWSConnection(oList[i]));
finally
oServer.UnShareList;
end;