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