viernes, 11 de diciembre de 2015

Hilos en C#, ParallelLoopState

Es posible cancelar un loop de proceso paralelo usando el objeto ParallelLoopState. Se tienen dos opciones para hacer esto: Break o Stop,

Break asegura que todas las interacciones que se encuentren en ejecución terminan. Stop termina cualquier cosa que este ejecutándose. Ejemplo:

Cuando se rompe un ciclo paralelo, el resultado del valor de la variable isCompleted es false y la variable LowestBreakItereation de 50. Cuando se usa el método Stop, la variable LowestBreakItereation es null.

using System;
using System.Threading.Tasks;

namespace UsandoParallelBreak
{
    class Program
    {
        static void Main(string[] args)
        {

            ParallelLoopResult result = Parallel.
                For(0, 100, (int i, ParallelLoopState loopState) =>
                {
                    Console.WriteLine("proceso paralelo {0}", i);

                    if (i == 50)
                    {
                        Console.WriteLine("Breaking loop");
                        loopState.Break();
                    }

                    return;

                });

        }
    }
}

No hay comentarios.:

Publicar un comentario