Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace Recetas.Threading.Cap01
  5. {
  6.     public sealed class VerificacionEstadoThread
  7.     {
  8.         public static void Main()
  9.         {
  10.             Thread nuevoThread = new Thread(
  11.                 delegate()
  12.                 {
  13.                     Console.WriteLine ("\nDentro del thread `nuevoThread`...");
  14.                     // Ciclo infinito...
  15.                     // Será interrumpido por nuevoThread.Abort() en
  16.                     // el thread Main:
  17.                     while(true);
  18.                 }
  19.             );
  20.            
  21.             // El thread nuevoThread aún no se ha iniciado:
  22.             Console.WriteLine ("\n1 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState);
  23.            
  24.             // Inicio del thread `nuevoThread`:
  25.             nuevoThread.Start();
  26.             Thread.Sleep (1000);
  27.            
  28.             // `nuevoThread` se haya en ejecución:
  29.             Console.WriteLine ("\n2 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState);
  30.            
  31.             // Aborta la ejecución de `nuevoThread`:
  32.             nuevoThread.Abort();
  33.            
  34.             // Nuevo estado de `nuevoThread`:
  35.             Console.WriteLine ("\n3 - Estado actual de `nuevoThread`: {0}", nuevoThread.ThreadState);
  36.            
  37.             // Intento de poner en espera el thread Main,
  38.             // sin embargo el `nuevoThread` ha sido abortado:
  39.             nuevoThread.Join ();
  40.            
  41.             Console.WriteLine ("\n4 - Estado actual de `nuevoThread`: {0}\n", nuevoThread.ThreadState);
  42.         }
  43.     }
  44. }