TsgcWebSocketServer_HTTPAPIメソッド › ShareList

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;

メソッドに戻る