jueves, 10 de diciembre de 2015

Hilos en C# ContinueWith overloads

El método ContinueWith tiene un par de métodos sobrecargados que puede usar para configurar la continuación de la ejecución. De esta forma puede agregar diferentes métodos de continuación cuando ocurra una excepción, como por ejemplo cuando la tarea deba ser cancelada o completada con éxito.

Nota:
Debe notar el uso del espacio de nombres System.Threading.Tasks.

using System;
using System.Threading.Tasks;

namespace UsingTaskReturnValue
{
    class Program
    {
        static void Main(string[] args)
        {
            Task<int> tarea = Task.Run(() =>
            {
                return 25;
            });

            tarea.ContinueWith((i) =>
            {
                Console.WriteLine("Cancelado");
            }, TaskContinuationOptions.OnlyOnCanceled);

            tarea.ContinueWith((i) =>
            {
                Console.WriteLine("Falla o defecto");
            }, TaskContinuationOptions.OnlyOnFaulted);

            var tareaCompletada = tarea.ContinueWith((i) =>
            {
                Console.WriteLine("Completado");
            }, TaskContinuationOptions.OnlyOnRanToCompletion);

            tareaCompletada.Wait();

        }
    }
}

Referencia:
Exam Ref 70-483 Programming in C#


No hay comentarios.:

Publicar un comentario