Чтение и запись в некоторые примитивные типы в C#, такие как bool
и int
, являются атомарными.
(См. раздел 5.5, «5.5 Атомарность ссылок на переменные» в Спецификации языка C#.)
Но как насчет доступа к таким переменным через свойства? Разумно ли предположить, что они также будут атомарными и потокобезопасными? Например. Является ли чтение MyProperty
ниже атомарным и потокобезопасным?:
public bool MyProperty { get { return _foo; } }
А как насчет автоматически реализуемых свойств?
public bool MyProperty { get; }