Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Ch05_UsingCSharp5Dot0.R0502
- {
- /// <summary>
- ///
- /// </summary>
- public class AwaitExpresionLambda
- {
- /// <summary>
- /// Inicio ejecución de la demostración de expresión lambda con operador await.
- /// </summary>
- public void Ejecutar()
- {
- Task tarea = ProcesamientoAsincronico();
- tarea.Wait();
- }
- /// <summary>
- /// Procesamiento asincrónico usando una expresión lambda y el operador await.
- /// </summary>
- /// <returns></returns>
- private async static Task ProcesamientoAsincronico()
- {
- // Definición de expresión lambda con uso de operador await:
- Func<string, Task<string>> 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);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement