using System; using System.Threading; using System.Threading.Tasks; namespace Ch05_UsingCSharp5Dot0.R0502 { /// /// /// public class AwaitExpresionLambda { /// /// Inicio ejecución de la demostración de expresión lambda con operador await. /// public void Ejecutar() { Task tarea = ProcesamientoAsincronico(); tarea.Wait(); } /// /// Procesamiento asincrónico usando una expresión lambda y el operador await. /// /// private async static Task ProcesamientoAsincronico() { // Definición de expresión lambda con uso de operador await: Func> lambdaAsync = async nombre => { await Task.Delay(TimeSpan.FromSeconds(2)); return String.Format("`{0}` se está ejecutando en el ID de thread {1}. " + "¿Thread en el pool de threads?: {2}.", nombre, Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsThreadPoolThread); }; string resultado = await lambdaAsync("Expresión lambda asincrónica"); Console.WriteLine(resultado); } public static void Main() { new AwaitExpresionLambda().Ejecutar(); } } }