2011-05-19 13 views
20

Se utiliza un botón en el formulario principal para iniciar el hilo. Si el formulario principal está cerrado en el entorno de desarrollo, el hilo se sigue ejecutando en segundo plano, lo que impide editar el código fuente en una plataforma Windows 7 de 64 bits. El hilo debe eliminarse mediante Menú> Depurar> Detener depuración. ¿Cuál es la forma correcta de matar mediante programación el hilo cuando se cierra el formulario principal?Cómo matar el hilo al salir?

private void buttonW_Click(object sender, EventArgs e) 
{ 
    Thread t = new Thread(Main.MyThread); 
    t.Start(); 
} 

private static void MyThread() 
{ 
    ... 
} 

Respuesta

45

Si desea que la aplicación para salir cuando el hilo principal ha terminado, sólo puede hacer que el nuevo hilo de un hilo de fondo:

Thread t = new Thread(Main.MyThread); 
t.IsBackground = true; 
t.Start(); 

Básicamente, el proceso terminará cuando todos los primer plano hilos han salido.

Tenga en cuenta que esto podría ser una mala noticia si el subproceso de fondo está escribiendo un archivo cuando se cierra el formulario, o algo similar ...

+2

no puedo creer que siempre se almacena una pila de roscas en el hilo principal e iterar a través de él para cerrarlos a todos. – BrunoLM

+0

Perfecto. Gracias. Por cierto: acaba de comenzar en tu libro. – jacknad

+0

@JackN: Me alegra ayudar. Espero que disfrutes el libro :) –

Cuestiones relacionadas