Size: a a a

2021 May 26

MN

Mr. N in CODE BLOG / C#
Сомнительно это был бы уже баг.Тай оптимизацию можно отключить
источник

MN

Mr. N in CODE BLOG / C#
Для кэширования значение потоками, во всех потоков будет свой false
источник

MN

Mr. N in CODE BLOG / C#
Они время от времени вродибы синхронизируются
источник

MN

Mr. N in CODE BLOG / C#
class Message{} class Info:Message{} , public Info Get(){}
источник

MN

Mr. N in CODE BLOG / C#
Можно все классы наследовать от Message
источник

MN

Mr. N in CODE BLOG / C#
А в Message поле з ошибкой
источник

MN

Mr. N in CODE BLOG / C#
Если поле null то все ок
источник

MN

Mr. N in CODE BLOG / C#
List<int>
источник

S

Sergey Trofimov in CODE BLOG / C#
Тебе на мсдн описания конкретно этого кейса мало чтобы не сомневаться?)
источник

MN

Mr. N in CODE BLOG / C#
да
источник

S

Sergey Trofimov in CODE BLOG / C#
Ну значит ты умнее всех
источник

MN

Mr. N in CODE BLOG / C#
не
источник

MN

Mr. N in CODE BLOG / C#
Ну ладно это называется кэшированиям и это не баг.
источник

EA

Egene Avdeev in CODE BLOG / C#
Получается что все поля к которым доступ может быть из нескольких потоков должны быть volatile. И допустим lock в таком случае что делать будет.
Опять же про оптимизации jit Сергей говорил.

Короче мутная тема, как определить когда надо volatile а когда нет... в примере Сергея вообще неочевидное поведение jit, слишком неопределённо

Да и люди через одного скажут, ух, volatile, первый раз вижу
источник

MN

Mr. N in CODE BLOG / C#
Не должны быть volatile все поля,это может вызвать много багов, если есть какая струтура констата может тогда его надо использовать. 🤔
источник

MN

Mr. N in CODE BLOG / C#
например
источник

EA

Egene Avdeev in CODE BLOG / C#
В моем сообщении предыдущем все точки это знак вопроса
источник

EA

Egene Avdeev in CODE BLOG / C#
Вот нигде volatile не ставят, хотя таски везде, и при проектировании не задумываемся откуда этот код вызовется
источник

MN

Mr. N in CODE BLOG / C#
А где его можно ставить, тока в констатних значений или значений которые не критично быстро должны меняться
источник

MN

Mr. N in CODE BLOG / C#
в разных потоках
источник