Tutorial Multithreading en .Net (c#)

Qué es un Hilo de Ejecución o Thread?

La creación de un nuevo hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.

Ahora un ejemplo práctico usando el lenguaje de programación C# .NET:




public void MuestraDatos()
{
    for (int i = 0; i < 100; i++)
    {
        Console.WriteLine("Hilo Secundario: Registro # {0}", i);

        // Lo siguiente suspende el subproceso actual
        // durante un período de tiempo especificado en milisegundos
        Thread.Sleep(10);
    }
}

public void HiloPrincipal()
{
    Console.WriteLine("Hilo principal: va a ejecutar hilo secundario...");
    // el constructor de la clase thread requiere que se use
    // el delegado ThreadStart y como parametro pasar el metodo
    // a ser ejecutado sobre un hilo:
    Thread t = new Thread(new ThreadStart(MuestraDatos));

    //Para ejecutar el metodo MuestraDatos se usa el metodo start:
    t.Start();
    /*
    Si usted tiene un solo procesador, el nuevo
    hilo no consigue tiempo del procesador hasta que el hilo principal
    prevalezca..  Elimine el comentario Thread.Sleep para
    permitir a t.Start() ver la diferencia.
    */
    //Thread.Sleep(0);
    for (int i = 0; i < 4; i++)
    {
        Console.WriteLine("Hilo Principal: Está trabajando.");
        Thread.Sleep(100);
    }
    Console.WriteLine("Hilo Principal: llama a t.Join(), para esperar hasta que MuestraDatos Termine.");
    t.Join();
    Console.WriteLine("Hilo Principal: t.Join() ha terminado.");
    Console.WriteLine("Presione enter para terminar el programa.");
    Console.ReadLine();
}







Si deseas ver el código fuente da clic en el siguiente enlace:



Comentarios