Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Recetas.Multithreading.R0401
- {
- public class TareasAsincronicas
- {
- public static void Main()
- {
- Console.WriteLine ();
- // Creación de dos objetos Thread:
- Task tarea1 = new Task( () => TareaAsincronica("Tarea 1"));
- Task tarea2 = new Task( () => TareaAsincronica("Tarea 2"));
- // Inicio ejecución de las dos tareas recién creadas:
- tarea2.Start();
- tarea1.Start();
- // Uso del método static Run para la ejecución otra tarea:
- Task.Run( () => TareaAsincronica("Tarea 3"));
- // Uso de StartNew de Factory para crear dos tareas más:
- Task.Factory.StartNew( () => TareaAsincronica("Tarea 4"));
- Task.Factory.StartNew( () => TareaAsincronica("Tarea 5"), TaskCreationOptions.LongRunning);
- // Retardo de ejecución de Main de un segundo:
- Thread.Sleep (TimeSpan.FromSeconds(1));
- Console.WriteLine ();
- }
- public static void TareaAsincronica(string nombreTarea)
- {
- Console.WriteLine ("La tarea `{0}` se ejecuta en el thread con ID {1} " +
- "¿Es un thread del pool de threads?: {2}",
- nombreTarea, Thread.CurrentThread.ManagedThreadId,
- Thread.CurrentThread.IsThreadPoolThread);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement