Is it possible to observe a partially-constructed object from another thread?
I've often heard that in the .NET 2.0 memory model, writes always use release fences. Is this true? Does this mean that even without explicit memory-barriers or locks, it is impossible to observe a partially-constructed object (considering reference-types only) on a thread different from the one on which it is created? I'm obviously excluding cases where the constructor leaks the this reference. For example, let's say we had the immutable reference type: public class Person { public string Name { get; private set; } public int Age { get; private set; } public Person(string name, int age) {