Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading.Tasks;
- namespace Articulos.Cap04
- {
- public sealed class MetodoAsincronicoExcepciones
- {
- public static async void MetodoAsincronico()
- {
- Task<string> tarea = RetrasoAsincronico();
- try
- {
- string resultado = await tarea;
- Console.WriteLine ("Resultado: {0}", resultado);
- }
- catch (Exception e)
- {
- Console.WriteLine ("Mensaje de excepción: {0}", e.Message);
- }
- Console.WriteLine ("¿La tarea fue cancelada?: {0}", tarea.IsCanceled.ToString());
- Console.WriteLine ("¿La tarea falló?: {0}", tarea.IsFaulted.ToString());
- if (tarea.Exception != null)
- {
- Console.WriteLine ("Mensaje de excepción: {0}", tarea.Exception.Message);
- Console.WriteLine ("Mensaje de excepción anidada: {0}", tarea.Exception.InnerException.Message);
- }
- }
- public static async Task<string> RetrasoAsincronico()
- {
- await Task.Delay(100);
- // Remueva los comentarios para demostrar
- // el lanzamiento de excepciones en métodos
- // asincrónicos:
- // throw new OperationCanceledException ("Cancelado");
- // throw new Exception ("Ocurrió un problema...");
- return "Tarea completada";
- }
- public static void Main()
- {
- // Creación de una tarea con
- // System.Threading.Task.Task:
- Task tarea = new Task(MetodoAsincronico);
- // Inicia la ejecución de la tarea:
- tarea.Start();
- // Espera a que la tarea se complete:
- tarea.Wait();
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement