Depends on your data structures.
I assume that the problem you are facing (although you are not saying this) is a potential inverse of blocking. If you are copying deeply, you are likely to take one or more locks for the various objects that you need to copy.
DAG ( ), , , , , , . , , . , " " , .
"WidgetBoxes", "", , , , . , WidgetBox ( " " ), , . , , . .
, WidgetBoxes. , , , .
, . , , , WidgetBox, ( - - - , , " " , , ), WidgetBox, . , . , , WidgetBox , , , . , .
, "" - . , ( ).
, , , . , -, , , .