El paralelismo significa tomar una cierta tarea y dividir esta en un conjunto de tareas relacionadas que pueden ser ejecutadas simultáneamente. No debería sustituir los ciclos de su código por ciclos paralelos. Si tiene que realizar tareas que no sean secuenciales, puede usar la clase Parallel .
Incrementar el funcionamiento con proceso paralelo ocurre solamente cuando tenga un gran conjunto de trabajo para ser realizado y que puede ser realizado en paralelo. Para pequeños conjuntos de trabajo o para trabajo que requiera acceso a recursos de forma sincronizada, usar la clase Parallel tienen efectos que degradan el funcionamiento.
La mejor forma de saber si debería usar trabajo en paralelo es medir los resultados. Los siguientes ejemplos usan Parallel.For y Parallel.ForEach.
using System;
using System.Threading;
using System.Threading.Tasks;
namespace UsandoParallelFor
{
class Program
{
static void Main(string[] args)
{
Parallel.For(0, 10, i =>
{
Console.WriteLine("Ejecución en paralelo : {0} ", i);
Thread.Sleep(1000);
});
Console.WriteLine("Fin de ejecución en paralelo.");
}
}
}
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace UsandoParallelFor
{
class Program
{
static void Main(string[] args)
{
var numbers = Enumerable.Range(0, 10);
Parallel.ForEach(numbers, i =>
{
Console.WriteLine("Ejecución en paralelo : {0} ", i);
Thread.Sleep(1000);
});
}
}
}
No hay comentarios.:
Publicar un comentario