C# ThreadingBasics: Operaciones básicas con threads

Creando un thread en C#

Vamos a crear una aplicación de consola. Añadimos el espacio de nombres using System.Threading;. Creamos una función static PrintNumbers (los hilos no retornan nada ni reciben parámetros) que escribe por consola del 1 al 10 usando un bucle for.

t1

Una instancia de un programa en ejecución se puede definir como un proceso. Un proceso consiste en uno o más threads. Esto significa que cuando ejecutamos un programa, siempre tenemos un thread principal que ejecuta el código del programa.

El método PrintNumbers lo invocaremos dos veces, desde el Main y como thread o hilo concurrente.

t2

Pausando un thread

En el siguiente ejemplo dentro de la función PrintNumbersWithDelay hacemos una llamada al método Thread.Sleep que  suspende la ejecución durante 2 segundos (usamos la estructura TimeSpan para con el método  FromSeconds para convertir de segundos en milisegundos, la magnitud reconocida por el método Sleep).

t1

Haciendo que un thread espere

En este caso vamos a hacer que la función principal Main detenga su ejecución  y espere a que el el thread acabe. Usamos el método Thread.Join()  que bloquea el subproceso de llamada hasta que finaliza el subproceso representado por esta instancia, si le pasásemos un valor al método esperaría el tiempo especificado a que el thread finalice.

t1Abortando la ejecución de un thread

Ahora el hilo principal Main espera 6 segundos y aborta la ejecución del thread con el método Abort() que lanza la excepción ThreadAbortException en el subproceso en el que se invoca.

t1 No es muy recomendable usar el método Abort ya que el resultado puede ser incierto.

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s