私はコードとマルチスレッドアプリケーションの例を読んでいます。時々私はそうのようなスニペットを参照してください。スレッドが開始されると、そのスレッドへの参照を保持する必要がありますか?
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ルートであるため、何も心配する必要はありません。 –
答えをありがとう。これについての文書化された参考資料への任意のチャンス? –
確かに、私は参考文献を追加しました。 –