An enum is a value; it is as thread safe as the location that holds that value.So if you have an object (CFoo foo) that is being accessed by multiple threads, and has a member which is a Status (foo.status), you need to synchronize reads and writes to that member just as if it was an integer.