using System; using System.Threading; namespace Recetas.Threading.Cap01 { public sealed class VerificacionEstadoThread { public static void Main() { Thread nuevoThread = new Thread( delegate() { Console.WriteLine ("\nDentro del thread `nuevoThread`..."); // Ciclo infinito... // Será interrumpido por nuevoThread.Abort() en // el thread Main: while(true); } ); // El thread nuevoThread aún no se ha iniciado: Console.WriteLine ("\n1 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState); // Inicio del thread `nuevoThread`: nuevoThread.Start(); Thread.Sleep (1000); // `nuevoThread` se haya en ejecución: Console.WriteLine ("\n2 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState); // Aborta la ejecución de `nuevoThread`: nuevoThread.Abort(); // Nuevo estado de `nuevoThread`: Console.WriteLine ("\n3 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState); // Intento de poner en espera el thread Main, // sin embargo el `nuevoThread` ha sido abortado: nuevoThread.Join (); Console.WriteLine ("\n4 - Estado actual de `nuevoThread`: {0}\n", nuevoThread.ThreadState); } } }