C # Threading – Cómo iniciar y detener un hilo

¿Alguien puede darme una ventaja sobre el tema de enhebrar? Creo que sé cómo hacer algunas cosas pero necesito saber cómo hacer lo siguiente:

Configure un hilo principal que permanecerá activo hasta que le indique que se detenga (en caso de que se pregunte, terminará cuando se reciban los datos). Luego quiero que comience un segundo hilo que capturará los datos de un cuadro de texto y debería cerrarse cuando señalo que ocurre cuando el usuario presiona la tecla Intro.

¡Aclamaciones!

Así es como lo hago …

 public class ThreadA { public ThreadA(object[] args) { ... } public void Run() { while (true) { Thread.sleep(1000); // wait 1 second for something to happen. doStuff(); if(conditionToExitReceived) // what im waiting for... break; } //perform cleanup if there is any... } } 

Luego, para ejecutar esto en su propio hilo … (lo hago de esta manera porque también quiero enviar argumentos al hilo)

 private void FireThread(){ Thread thread = new Thread(new ThreadStart(this.startThread)); thread.start(); } private void (startThread){ new ThreadA(args).Run(); } 

El hilo se crea llamando a “FireThread ()”

El subproceso recién creado se ejecutará hasta que se cumpla su condición de detención, luego muere …

Puede señalar el “principal” a los delegates, para indicar cuándo ha muerto el hilo … para que pueda comenzar el segundo …

Mejor leer: Este artículo de MSDN

 Thread th = new Thread(function1); th.Start(); th.Abort(); void function1(){ //code here } 

Use un AutoResetEvent estático en sus subprocesos generados para volver a llamar al subproceso principal utilizando el método Set (). Este tipo tiene una demostración bastante buena en SO sobre cómo usarlo.

Aclaración de AutoResetEvent