On 32-bit machines, reading and writing of 64-bit values in .net used to be non-atomic, i.e. when reading, I could read a value that had never been written to memory, consisting of one older 32-bit half, and one newer half.
- But are reads/writes atomic on 64-bit cpus?
- If so, does the (Windows) OS have to be 64-bit as well?
- And if so, would even the app have to be a 64-bit .net build?