Подтвердить что ты не робот

Массив назначения не достаточно длинный?

У меня есть класс со следующим методом:

public List<Bike> bikesCopy 
{
     get 
     { 
       List<Bike> bs;
       lock (_bikes) bs = new List<Bike>(_bikes);
       return bs;
     }
}

Что делает копию другого списка, private List<Bike> _bikes;

Странная вещь в том, что я получаю следующую ошибку:

Массив назначения не был достаточно длинным. Проверьте destIndex и длину и нижние границы массива.

В чем проблема?

4b9b3361

Ответ 1

Я бы сказал, что ошибка заключается в том, что объект _bikes не является потокобезопасным. Как отмечалось, где-то есть модификация объекта _bikes, который не блокируется.

Это вторая секундная ошибка, когда переменная bs настроена на размер X, когда измеряется размер _bikes. В следующий раскол секунды, когда он собирается заполнить список, объект _bikes увеличился в размере, давая ошибку.

Итак, переходите к своему коду. Найдите все ссылки на свой _bikes объект и убедитесь, что они поточно защищены (с блокировкой).