让我们说我有一个结构,无论如何定义,但让我们假设它是可变的。例如:
struct Point
{
public double X;
public double Y;
}
另外,让我们假设有一个类暴露了一个返回该类型Point
(struct)的值的属性。
class C
{
private Point _pos; //mutable
public Point Position { get { return _pos; } }
}
当然,当我从位置获取值时,我实际上得到了原始值的副本。
Point pos = c.Position;
但是,我不保证并发上下文中的原子性,并且我可能会得到一个损坏的值。
问题是:是否有任何现成的机制(Interlock.whatever
种类)允许在并发上下文中安全地克隆结构?