TsgcWebSocketServer_HTTPAPI › メソッド › ShareList
内部接続リストの共有(読み取り専用)ロックを取得し、同時列挙のために返します。
function ShareList: TList;
サーバーが保持する TsgcWSConnection インスタンスのライブ TList。呼び出し元はリストを読み取り専用として扱い、完了したら UnShareList を呼び出してロックを解放する必要があります。(TList)
ShareList は、リストの内部 SRW(スリムリーダー/ライター)ロックを共有モードで取得し、複数のスレッドが互いにブロックすることなく同時に接続テーブルを列挙できるようにします。接続状態の読み取りのみ(反復、カウント、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;