public enum MyEnum{Value1, Value2} class MyClass { private MyEnum _field; public MyEnum Field // added for convenience { get { return _field;
You appear to not need the "exchange" feature of Interlocked.Exchange, as you are ignoring its return value. Therefore I think the solution that might make you happiest is to mark _field as volatile:
private volatile MyEnum _field;