我想在多线程应用程序中使用NClone。
Clone.ObjectGraph(myObject)
NClone的ObjectGraph是一种静态方法。假设我保护我的对象(因此在克隆操作期间没有其他线程可以访问这些对象),Clone.ObjectGraph本身线程是否安全(同样仅在同时克隆不同的对象时),或者我应该保护Clone.ObjectGraph(...)操作本身以防止重入? (听起来像一个可怕的瓶颈)
答案 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>();
}