我一直在閱讀代碼和多線程應用程序的例子。不時我看到一個片段,像這樣:一旦線程啓動,我應該保持對線程的引用嗎?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("started");
Go();
Console.WriteLine("press [ENTER] to quit");
Console.ReadLine();
}
private static void Go()
{
var thread = new Thread(DoSomething);
thread.Start();
}
private static void DoSomething()
{
Console.WriteLine("doing something");
}
}
它不斷地困擾着我:我應該保持的參考(前景)線程的地方?畢竟,它是Go
方法中的局部變量。因此,一旦Go
的執行完成,線程引用應該被垃圾收集。或許,也許,線程在執行時會被GCed?
如果是後臺線程,答案會改變嗎?
在此先感謝!
是對的。無需擔心,因爲線程是GC根目錄。 –
感謝您的回答。任何有關這方面的文檔參考的機會? –
當然,我添加了一個參考。 –