私が読んだところによると、GC は「ルート」から開始し、GC がスイープを実行する前に、すべてのライブ オブジェクトを追跡してマークします。しかし、何がルートを構成しているのか正確にはわかりません。たとえば、次のコードでは、Main メソッドがスレッドから開始され、存在します。では、GC の開始時に、どの部分をルートとして選択するかをどのように判断するのでしょうか?
static void Main()
{
var thread = new Thread(SomeLongRunningProcess);
thread.Start();
}
static void SomeLongRunningProcess()
{
}