我们从C# specification知道参考读/写是原子的。在访问对象成员的语句中,引用是否也会被原子访问? 我认为是的,因为它也是一种隐式引用读取,编译器在生成代码时必须提供原子性。访问对象成员和原子性
在同一声明中,访问访问它的成员将这项事业的对象的对象引用保持,从而当被另一个线程创建新实例它不是垃圾收集?
所以,如果我们在一个链条访问成员,将参考也将举行最左边的对象,所以它不是垃圾被其他线程收集的?
考虑下面的代码;
static SomeClass sharedVar;
void someMethod()
{
SomeClass someLocalVar = sharedVar.memberX.memberY.a;
operations on someLocalVar...
}
我找这个话题官方的解释,从MSDN library,C#规格等,或微软的人,以确保我不会打破的东西,一切都很好。
2.我的意思是,如果另一线程分配一个新的实例来sharedVar所以使虽然这一个正在访问sharedVar设置旧参考。 3.我的意思是当一些点,同时一个线程正在执行的语句的说明 SomeClass的someLocalVar = sharedVar.memberX.memberY.a; 当读取memberY时,另一个线程开始工作,并将null或new对象分配给sharedVar。我不认为参考文献将被处置,但我只是犹豫,并希望让自己确定官方文件,解释? 谢谢。 – lockedscope 2009-11-13 16:34:09