根据我的阅读,GC 从“根”开始,并在 GC 运行扫描之前跟踪并标记所有活动对象。但我不确定是什么构成了根。例如,在下面的代码中,Main 方法从一个线程开始并存在。那么当 GC 启动时,它是如何知道选择哪个部分作为 root 的呢?
static void Main()
{
var thread = new Thread(SomeLongRunningProcess);
thread.Start();
}
static void SomeLongRunningProcess()
{
}