작성
·
169
·
수정됨
0
// GameRoom.cs
public void Flush()
{
foreach (ClientSession s in _sessions)
s.Send(_pendingList);
_pendingList.Clear();
}
foreach를 돌며 s.Send()를 하는 와중에
_sessions가 변경되면,
(_sessions.Add 되거나 _sessions.Remove 되면)
아래와 같이 컬렉션 변경 에러가 나옵니다.
이를 해결하려고 아래와 같이 _sessions를
_sessionsCopy에 복사하여 foreach 돌렸습니다.
// GameRoom.cs
public void Flush()
{
List<ClientSession> _sessionsCopy = _sessions.ToList(); // 복사
foreach (ClientSession s in _sessionsCopy)
s.Send(_pendingList);
_pendingList.Clear();
_sessionsCopy = null;
}
더 좋은 방법이 있을까요?
오... 빠른 답변 감사합니다.