NClone线程安全吗?

时间:2017-07-15 08:30:53

标签: c# multithreading

我想在多线程应用程序中使用NClone。

 Clone.ObjectGraph(myObject)

NClone的ObjectGraph是一种静态方法。假设我保护我的对象(因此在克隆操作期间没有其他线程可以访问这些对象),Clone.ObjectGraph本身线程是否安全(同样仅在同时克隆不同的对象时),或者我应该保护Clone.ObjectGraph(...)操作本身以防止重入? (听起来像一个可怕的瓶颈)

1 个答案:

答案 0 :(得分:2)

您可以分析NClone的源代码:https://github.com/mijay/NClone

我认为Clone.ObjectGraph是线程安全的,因为它创建了自己的ReplicationContext for every call

public T Replicate<T>(T source)
{
    return new ReplicationContext(replicationStrategyFactory).Replicate(source).As<T>();
}