동일한 오브젝트에 대한 참조를 가지고있는 대형 노드 네트워크가 메모리에 있습니다.오브젝트에 대한 참조가 모두 동일한 대규모 네트워크 오브젝트
예로서. 네트워크의 각 노드가이 클래스라고 가정 해 봅시다.
public class Node
{
/** This is the shared object **/
public Context context { get; private set; }
public Node Parent { get; private set; }
public List<Node> Children { get; private set; }
public Node(Context pContext, Node pParent, List<Node> pChildren)
{
this.context = pContext;
this.Parent = pParent;
this.Children = pChildren;
}
}
속성 context
는 네트워크에서 모든 노드에 대해 생성자에 전달되는 객체입니다.
네트워크가 매우 크기 때문에 (수천 개의 노드) 트리 구조를 형성한다고 가정합니다. 이 공통 공유 참조가 메모리 누수로 이어질 것입니까?
Parent
을 Null
으로 설정하여 트리에서 분기를 분리하는 경우. context
이이 공유 객체에 대한 참조로 남아 있더라도 해당 분기가 정확하게 C#
에 의한 가비지 수집이됩니까?
제대로 작동하려면 어떤 코딩 방법을 사용해야합니다.