Sigo leyendo código y ejemplos de aplicaciones de subprocesos múltiples. De vez en cuando veo un fragmento de este modo:¿Debo mantener una referencia a un hilo una vez que se inició?
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");
}
}
Y me mantiene molestando: debería mantener la referencia a la (primer plano) de hilo en alguna parte? Después de todo, es una variable local dentro del método Go
. Por lo tanto, una vez que se completa la ejecución de Go
, la referencia del hilo debe recogerse. Entonces, tal vez, solo tal vez, el hilo será GCed mientras se está ejecutando?
¿Cambiará la respuesta si es un hilo de fondo?
¡Gracias de antemano!
tiene razón. Nada de qué preocuparse porque un hilo es una raíz de GC. –
Gracias por la respuesta. ¿Alguna posibilidad de una referencia documentada sobre esto? –
Claro, he agregado una referencia. –