TsgcWebSocketServer_HTTPAPIMethods › ShareList

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;

返回方法