2012-07-12 5 views
11
Thread myThread = new Thread(new ParameterizedThreadStart(threadFunction)); 

public void threadFunction() { 
// Run a finite code 
... 
} 

Pregunta es: ¿se eliminará myThread una vez que threadFunction() ha terminado?¿Se detiene un subproceso una vez que su alcance de función ha terminado?

+0

Eventual; cuando la función finaliza, el estado del subproceso se establece en 'Detenido 'y eventualmente se recolectará basura. Ver también: http://stackoverflow.com/questions/81730/what-prevents-a-thread-in-c-sharp-from-being-collected – dash

+0

Sí, su hilo se eliminará automáticamente cuando se complete su ejecución. – Siddiqui

Respuesta

16

No es necesario desechar los hilos. La clase Thread no implementa IDisposable y no tiene un método Dispose.

Cuando se completa el hilo, no es necesario hacer nada especial para limpiarlo.

2

sí .. el hilo se detendrá y será dispuesto una vez que la función devuelve ..
sujetar el hilo que tendrá que hacer algo como

while(true){} 

Alternativamente, si usted no quiere que su hilo para ser desechado porque la creación de un nuevo hilo consume recursos
debe usar un ThreadPool hay una clase con el mismo nombre en .Net.
así que cada vez que necesite un hilo, se buscará en el grupo de subprocesos y se utilizará

Cuestiones relacionadas