Una mejor forma de detener un hilo es usar una variable compartida tanto para el hilo principal y el subordinado. En el siguiente ejemplo se utiliza un variable compartida. El hilo es inicializado con una expresión lambda (la cual es una expresión corta de un delegado). El hilo se mantiene en ejecución hasta que la variable detener es true. Después que el método Join() es invocado la aplicación espera hasta que el hilo termina de ejecutarse.
using System;
using System.Threading;
namespace DeteniendoHilos
{
class Program
{
static void Main(string[] args)
{
bool detener = false;
Thread hilo = new Thread(new ThreadStart(() =>
{
int ni = 0;
while (!detener)
{
Console.WriteLine("Ejecutando ... {0}", ni++);
// se detiene por un segundo
Thread.Sleep(10000);
}
}));
hilo.Start();
Console.WriteLine("Presione cualquier tecla para salir");
Console.ReadKey();
detener = true;
hilo.Join();
}
}
}
Referencia:
Exam Ref 70-483 Programming in C#
No hay comentarios.:
Publicar un comentario