Задать вопрос
@Mootfrost
C#, C++, JS, Python

Collection was modified, но она не менялась?

Есть вот такой кусок кода:
static void Cast(SessionInstance session)
        {
            SessionInstance copiedSession = session;  // Copy to prevent conflicts
            string message = Serialize(copiedSession);
            foreach (var player in copiedSession.players)
            {
                Send(message, player.ClientSocket);
            }
        }

        public static string Serialize(SessionInstance session)
        {
            return JsonConvert.SerializeObject(session);
        }

Я копирую экземпляр класса session чтобы другой поток его не изменил. Но все равно то на сериализации, то на foreach вылетает ошибка collection was modified. Я не понимаю почему это происходит.
  • Вопрос задан
  • 67 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
А не является ли SessionInstance ссылочным типом со всеми нюансами копирования ссылки, а не объекта?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы