Size: a a a

2020 December 14

IC

Ilya Chernoudov in pro.net
Vladimir Shchur
а подскажите, если я в одном потоке добавляю элементы в лист, а в другом по айдишнику обращаюсь к уже имеющимся - ничего не может сломаться?
ты можешь получить null
источник

IC

Ilya Chernoudov in pro.net
а в остальном должно быть норм
источник

IC

Ilya Chernoudov in pro.net
а, и если у тебя там структры большие то можешь получить не такие данные, которые ожидаешь
источник

P

Pavel in pro.net
Vladimir Shchur
а подскажите, если я в одном потоке добавляю элементы в лист, а в другом по айдишнику обращаюсь к уже имеющимся - ничего не может сломаться?
Да вроде нет, пока ресайз не случился получать будеш из старого, а после из нового массива, но лучше протестить или код посмотреть
источник

VS

Vasily Shapenko in pro.net
Vladimir Shchur
а подскажите, если я в одном потоке добавляю элементы в лист, а в другом по айдишнику обращаюсь к уже имеющимся - ничего не может сломаться?
Ну вообще  it depends
источник

VS

Vasily Shapenko in pro.net
По опыту ломается только в путь
источник

VS

Vladimir Shchur in pro.net
Ilya Chernoudov
а, и если у тебя там структры большие то можешь получить не такие данные, которые ожидаешь
не, лист интов
источник

VS

Vladimir Shchur in pro.net
Ilya Chernoudov
ты можешь получить null
в листе интов наверное не могу)
источник

IC

Ilya Chernoudov in pro.net
Vladimir Shchur
в листе интов наверное не могу)
тогда можешь получить 0 :)
источник

IC

Ilya Chernoudov in pro.net
по идее ничего страшного не должно случиться
источник

VS

Vladimir Shchur in pro.net
Pavel
Да вроде нет, пока ресайз не случился получать будеш из старого, а после из нового массива, но лучше протестить или код посмотреть
это для либы пульсаровской - продьюсер выбирает номер партишна, но раз в месяц может из другого потока количество партишнов увеличиться
источник

VS

Vladimir Shchur in pro.net
Ilya Chernoudov
тогда можешь получить 0 :)
это гуд) главное чтобы не эксепшн
источник

P

Pavel in pro.net
Проблема будет если при ресайзе сначала запомнится ссылка на новый массив, а потом будет копирование в него пред данных, тут токо тест или просмотр кода реализации
источник

VS

Vladimir Shchur in pro.net
источник

VS

Vladimir Shchur in pro.net
ну отсюда кажется что ни налла ни нуля не должно быть
источник

EZ

Eugene Zakharov in pro.net
Vladimir Shchur
а подскажите, если я в одном потоке добавляю элементы в лист, а в другом по айдишнику обращаюсь к уже имеющимся - ничего не может сломаться?
документация открещивается что это небезопасно

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?redirectedfrom=MSDN&view=net-5.0#thread-safety

а как ты по айдишнику обращаешься к имеющимся? бежишь по массиву и сравниваешь ID?

или ты имел в виду обращение по индексу?
источник

VS

Vladimir Shchur in pro.net
да, по индексу имел ввиду
источник

VS

Vladimir Shchur in pro.net
да, перепутал - там лист не интов, а объектов, но все равно не вижу как там налл может быть)
источник

IC

Ilya Chernoudov in pro.net
Vladimir Shchur
ну отсюда кажется что ни налла ни нуля не должно быть
кстати да, там сначала копирование, потом присвоение
источник

AT

Alexey Tkachenko in pro.net
Ilya Chernoudov
кстати да, там сначала копирование, потом присвоение
А барьер есть?
источник