Когда неизменный объект добавляется в один поток и передается во второй поток (скажем, как поле общего объекта), не должен ли второй поток синхронизироваться?
Thread1:
=========
x = new SomeObject()
Thread2
=========
if (x != null)
x.DoSomething()
Должен ли быть барьер памяти перед x.DoSomething ()? возможно ли, что назначение x в первом потоке никогда не будет видно второму потоку?
Что такое шаблон безопасной публикации для .NET?