Advertisement
Fhernd

TareasAsincronicas.cs

Mar 25th, 2016
1,209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.54 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4.  
  5. namespace Recetas.Multithreading.R0401
  6. {
  7.     public class TareasAsincronicas
  8.     {
  9.         public static void Main()
  10.         {
  11.             Console.WriteLine ();
  12.             // Creación de dos objetos Thread:
  13.             Task tarea1 = new Task( () => TareaAsincronica("Tarea 1"));
  14.             Task tarea2 = new Task( () => TareaAsincronica("Tarea 2"));
  15.            
  16.             // Inicio ejecución de las dos tareas recién creadas:
  17.             tarea2.Start();
  18.             tarea1.Start();
  19.            
  20.             // Uso del método static Run para la ejecución otra tarea:
  21.             Task.Run( () => TareaAsincronica("Tarea 3"));
  22.            
  23.             // Uso de StartNew de Factory para crear dos tareas más:
  24.             Task.Factory.StartNew( () => TareaAsincronica("Tarea 4"));
  25.             Task.Factory.StartNew( () => TareaAsincronica("Tarea 5"), TaskCreationOptions.LongRunning);
  26.            
  27.             // Retardo de ejecución de Main de un segundo:
  28.             Thread.Sleep (TimeSpan.FromSeconds(1));
  29.            
  30.             Console.WriteLine ();
  31.         }
  32.        
  33.         public static void TareaAsincronica(string nombreTarea)
  34.         {
  35.             Console.WriteLine ("La tarea `{0}` se ejecuta en el thread con ID {1} " +
  36.                                "¿Es un thread del pool de threads?: {2}",
  37.                 nombreTarea, Thread.CurrentThread.ManagedThreadId,
  38.                 Thread.CurrentThread.IsThreadPoolThread);
  39.         }
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement