Advertisement
Fhernd

AwaitExpresionLambda.cs

Jun 26th, 2016
1,817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.39 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4.  
  5. namespace Ch05_UsingCSharp5Dot0.R0502
  6. {
  7.     /// <summary>
  8.     ///
  9.     /// </summary>
  10.     public class AwaitExpresionLambda
  11.     {
  12.         /// <summary>
  13.         /// Inicio ejecución de la demostración de expresión lambda con operador await.
  14.         /// </summary>
  15.         public void Ejecutar()
  16.         {
  17.             Task tarea = ProcesamientoAsincronico();
  18.  
  19.             tarea.Wait();
  20.         }
  21.  
  22.         /// <summary>
  23.         /// Procesamiento asincrónico usando una expresión lambda y el operador await.
  24.         /// </summary>
  25.         /// <returns></returns>
  26.         private async static Task ProcesamientoAsincronico()
  27.         {
  28.             // Definición de expresión lambda con uso de operador await:
  29.             Func<string, Task<string>> lambdaAsync = async nombre =>
  30.             {
  31.                 await Task.Delay(TimeSpan.FromSeconds(2));
  32.                 return String.Format("`{0}` se está ejecutando en el ID de thread {1}. "
  33.                                  + "¿Thread en el pool de threads?: {2}.",
  34.                 nombre,
  35.                 Thread.CurrentThread.ManagedThreadId,
  36.                 Thread.CurrentThread.IsThreadPoolThread);
  37.             };
  38.  
  39.             string resultado = await lambdaAsync("Expresión lambda asincrónica");
  40.  
  41.             Console.WriteLine(resultado);
  42.         }
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement