TsgcWebSocketServer_HTTPAPI › 메서드 › ShareList
내부 연결 목록에 대한 공유(읽기 전용) 잠금을 획득하고 동시 열거를 위해 반환합니다.
function ShareList: TList;
서버가 보유한 TsgcWSConnection 인스턴스의 라이브 TList. 호출자는 목록을 읽기 전용으로 취급해야 하며 완료 후 UnShareList를 호출하여 잠금을 해제해야 합니다. (TList)
ShareList는 목록의 내부 SRW(Slim Reader/Writer) 잠금을 공유 모드로 획득하여, 여러 스레드가 서로를 차단하지 않고 동시에 연결 테이블을 열거할 수 있도록 합니다. 연결 상태를 읽기만 하면 될 때(반복, 카운트, GUID 조회) 사용하십시오. 이는 배타적 writer 잠금을 획득하고 액세스를 직렬화하는 LockList보다 훨씬 저렴합니다. 공유 잠금을 보유하는 동안에는 항목을 추가, 제거 또는 변경하지 마십시오. 대신 LockList로 업그레이드하십시오. ShareList에 대한 모든 호출은 이상적으로는 try..finally 블록 내에서 정확히 한 번의 UnShareList 호출과 쌍을 이루어야 하며, 그렇지 않으면 목록이 잠긴 상태로 유지되어 새 연결을 등록할 수 없습니다.
oList := oServer.ShareList;
try
for i := 0 to oList.Count - 1 do
DoSomething(TsgcWSConnection(oList[i]));
finally
oServer.UnShareList;
end;