Procesos paralelos c#

 

En ocasiones al desarrollar una aplicación nos enfrentamos a situaciones en las cuales debemos ejecutar procesos de forma simultánea y es un problema debido a que los procesos se vuelven lentos y el tiempo de respuesta para el usuario es elevado.

Por ejemplo, si estamos desarrollando una aplicación online de una farmacia que tiene 3 sucursales, la cual vamos a utilizar para saber si algún medicamento está disponible y en cuál de las sucursales lo podemos encontrar, nuestro sistema tendría que buscar en cada una de las farmacias la misma información y regresarla, lo cual haría el sistema bastante lento y no sería eficiente para la operación.

Este tipo de problemas lo podemos resolver utilizando el paralelismo, que significa que vamos a ejecutar los llamados al mismo tiempo pudiendo obtener la información necesaria de cada una de las sucursales.

Vamos a realizar un pequeño ejemplo de cómo es que funciona y como es que podemos implementarlo en nuestra aplicación.

 

Ejemplo:

 

  1. Obtenemos información de la Farmacia 1 y así por cada una de las 3

 

private void Farmacia1()

{

      Thread.Sleep(1000);

      MessageBox.Show(“Farmacia 1″);

}

 

  1. Asignamos al método Farmacia1 como una tarea

 

Task t = new Task(this.Farmacia1);

t.Start();

 

Y realizamos este proceso con cada una de las 3 sucursales que son parte de la Farmacia

 

  1. Por último sincronizamos la ejecución de las tareas

 

Task t = new Task(this.Farmacia1);

t.Start();

 

Task t2 = new Task(this.Farmacia2);

t2.Start();

 

Task t3 = new Task(this.Farmacia3);

t3.Start();

 

Task.WaitAll(new Task[] { t, t2, t3 });

 

Con esta estructura podemos implementar diferentes instrucciones para cada una de las farmacias de una manera rápida y eficiente.

Share: