Size: a a a

2020 November 26

W

WhiteBlackGoose in pro.net
Верю, что они все правильно сделали
источник

W

WhiteBlackGoose in pro.net
А мне нужно убедиться, что
1) В многопотоке мои методы не интерферируют друг с другом в статических переменных
2) Отменяются когда надо
источник
2020 November 27

AB

Alex Bespalov in pro.net
Ну и таки без примеров не понятно чо там должно отработать, не должно, зачем. Абстрактные вопросы/ответы
источник

Dv

Dr. Friedrich von Ne... in pro.net
WhiteBlackGoose
А как в реальном мире проводят тесты на многопоток? Там же все время приходится придумывать операции, зависимые от времени. Я вот щас тестировал, что вот четыре таски запускаю, какие-то отменяю, и смотрю, те ли отменились. Но у меня тут везде миллисекунды - тут протестить, что операция длится не менее секунды, тут - отменить через полсекунды. Конечно, это зависит от железа и версии библиотеки, и вообще кажется ненадежным
Да, это очень сложно. Есть разные интересные инструменты, но они все сложные: например, могут требовать построения формальной модели твоей многопоточной системы.
источник

Dv

Dr. Friedrich von Ne... in pro.net
WhiteBlackGoose
Верю, что они все правильно сделали
Ха-ха.
источник

Dv

Dr. Friedrich von Ne... in pro.net
WhiteBlackGoose
А мне нужно убедиться, что
1) В многопотоке мои методы не интерферируют друг с другом в статических переменных
2) Отменяются когда надо
Обычно я в таком случае пытаюсь всё-таки написать стабильные тесты, которые будут тестировать проблемные сценарии. А в тестах расставить семафоры, эвенты или другие способы синхронизации.

В особо сложных случаях, когда корректность системы не удаётся доказать тестами — это веское основание для того, чтобы её перепроектировать.
источник

I

IdiocyAcceptance in pro.net
WhiteBlackGoose
А как в реальном мире проводят тесты на многопоток? Там же все время приходится придумывать операции, зависимые от времени. Я вот щас тестировал, что вот четыре таски запускаю, какие-то отменяю, и смотрю, те ли отменились. Но у меня тут везде миллисекунды - тут протестить, что операция длится не менее секунды, тут - отменить через полсекунды. Конечно, это зависит от железа и версии библиотеки, и вообще кажется ненадежным
Попробуй Microsoft Coyote
источник

I

IdiocyAcceptance in pro.net
Я им конкретно не пользовался, но немного щупал, скажем так. С виду как раз то, что тебе нужно
источник

W

WhiteBlackGoose in pro.net
Спасибо, хотя я наверное пока останусь с тем, что есть, по усложнению пойду когда прям позарез нужно будет.
источник

GM

Gennady Movila in pro.net
Ребят, подскажите, как отправить в ебучем Razor Pages (.NET Core) из контроллера Dictionary<Enum,long> , он у меня просто пустой приходит. Я уже и через viewData пробовал.
источник

E

EgorBo in pro.net
EbychiyRazor
источник

DB

Dmitry Babushkin in pro.net
LINQ.ToList не потокобезопасен при работе с ConcurrentDictionary.
источник

E

EgorBo in pro.net
Dmitry Babushkin
LINQ.ToList не потокобезопасен при работе с ConcurrentDictionary.
а с чего бы он должен быть?
источник

AB

Alex Bespalov in pro.net
Эти и другие открытия тех, кто не читает доки.
источник

DP

Denis Petukhov in pro.net
Эх. Шож на внутренности тупла атрибут не повесить
источник

DB

Dmitry Babushkin in pro.net
EgorBo
а с чего бы он должен быть?
dic.ToArray() // потокобезопасен
dic.ToList() // не потокобезопасен

Потому что это приводит к ошибкам, который разруливаются только статическими анализаторами, и я пока не нашёл ни одного где такое правило было бы по умолчанию.
источник

AH

Ayrat Hudaygulov in pro.net
Dmitry Babushkin
dic.ToArray() // потокобезопасен
dic.ToList() // не потокобезопасен

Потому что это приводит к ошибкам, который разруливаются только статическими анализаторами, и я пока не нашёл ни одного где такое правило было бы по умолчанию.
ToArray() метод самого дикшнари, ToList() из линкуя берется
источник

DB

Dmitry Babushkin in pro.net
И?
источник

AH

Ayrat Hudaygulov in pro.net
ну и все
источник

AT

Alexey Tkachenko in pro.net
dic.ToArray() // потокобезопасен
dic.ToList() // не потокобезопасен

это где такое написано?
источник