3
它使垃圾收集任何區別,如果我們在方法的範圍,而不是在類範圍聲明一個線程,如:線程創建範圍和垃圾收集
//scenario 1
public class Foo
{
public Foo()
{
new Thread(()=> /*engine*/) { IsBackground = true }.Start();
}
}
//scenario 2
public class Bar
{
private readonly Thread _engineThread = null;
public Bar()
{
_engineThread = new Thread(()=> /*engine*/) { IsBackground = true };
_engineThread.Start();
}
}
在場景1或場景2中,'Foo'或'Bar'的實例是否可以在線程結束之前進行垃圾回收?如果是,可以在線程結束之前收集它們嗎? – remio
@remio:是的,如果沒有任何引用它們,它們可能被垃圾收集。 –