C# 即使在64位机器上,引用分配真的是原子的吗?

C# 即使在64位机器上,引用分配真的是原子的吗?,c#,C#,我只是想知道上述情况是否属实,或者引用分配是否被分成两个操作 这就是您需要使用联锁交换的原因吗 有人能证实吗 我在这里说的是指针分配——这真的是原子的吗?它取决于类型。例如,在x86模式下分配不是原子的,在x64模式下分配是原子的。分配一个字符串是原子的,因为它是一种引用类型,您正在分配一个指针,指针的大小是4字节还是8字节,这取决于您是在x86位还是x64位模式下运行。您确定吗?如果我们在64位机器上运行,指针是8字节,那么它实际上是原子的吗IntPtr.Sizeproperty:但不要被操作

我只是想知道上述情况是否属实,或者引用分配是否被分成两个操作

这就是您需要使用联锁交换的原因吗

有人能证实吗


我在这里说的是指针分配——这真的是原子的吗?

它取决于类型。例如,在x86模式下分配不是原子的,在x64模式下分配是原子的。分配一个
字符串
是原子的,因为它是一种引用类型,您正在分配一个指针,指针的大小是4字节还是8字节,这取决于您是在x86位还是x64位模式下运行。

您确定吗?如果我们在64位机器上运行,指针是8字节,那么它实际上是原子的吗
IntPtr.Size
property:但不要被操作系统模式弄糊涂。如果在编译过程中显式指定.NET应用程序,则可以运行64位操作系统,但仍可以在x86模式下运行。