InicioHazlo Tu Mismohablemos un poco de Hilos c#

hablemos un poco de Hilos c#

Hazlo Tu Mismo3/19/2013




Un hilo es un subconjunto de sentencias de un programa con un objetivo específico. En un procesador con varios nucleos son ejecutados concurrentemente por cada nucleo; por lo tanto supone una mejora en la rapidez de ejecución de un programa.

Programar en hilos en procesadores multinucleo aprovecha la ejecución simultanea de varias partes del mismo programa por nucleos distintos,pudiendo accesar cada hilo de forma compartida variables del programa ("variables globales".

Algunos autores llaman códigos secuenciales a los que no usan hilos y códigos paralelos a los que sí los usan. Secuenciales porque debe de esperar cada actividad a que termine su antecesora; independientemente de si esta actividad es requisito previo o no para su ejecución.



Notas:
(1) Hilo en inglés es Thread, este término se usará en forma de sinónimo en ocasiones, dado que C# lo utiliza para definirlos.
(2) Algunos textos serán sustentados por ejemplos con código ejecutable ya probado, solo hay que ir a la referencia que se indicará con corchetes.

C# provee su namespace System.Threading para su soporte. En él distingue dos tipos de hilos:
(a) Ejecutados en primer orden -> foreground
Los hilos de forma predeterminada corresponden a esta categoría.
(b) Ejecutados en segundo plano -> background
Su característica peculiar es que terminan automáticamente cuando
han terminado todos lo hilos de tipo foreground del proceso. Para
generarse hay que cambiar la propiedad IsBackground a True.

Tal y como un proceso que pasa por varios estados los hilos también,sus estados son:
(1) Running
(2) StopRequested
(3) SuspendRequested
(4) Background
(5) Unstarted
(6) Stopped
(7) WaitSleepJoin
(8) Suspended
(9) AbortRequested
(10) Aborted



Los hilos en C# pueden generarse definiendo para cada hilo un punto de entrada. ¿qué es esto? Un punto de entrada es un método de una clase que inicia la ejecución de un hilo; pueden existir distintos puntos de entrada para distintos hilos en una misma clase. Estos métodos deben tener las siguientes características:
(a) Públicos
(b) No regresan un resultado (void )

De lo contrario se generará un error al momento de compilar la clase.



Los métodos que pueden ser puntos de entrada pueden ser estáticos o no. Si son estáticos no tiene que generarse un objeto de la clase a la que pertenecen , de lo contrario si debe de generarse el objeto previamente [apéndice C].

Nota: Los métodos estáticos por definición deben de ser públicos, pero los métodos de instancia No necesariamente. C# permite definir puntos de entrada como métodos de instancia privados.[apéndice D]

Al punto de entrada se le pueden pasar parámetros, pero este solo puede ser uno, de la clase object Si se quieren pasar múltiples datos solo hay que generar una clase que sirva de transporte para ellos

A continuación el proceso de creación de un hilo realizado por pasos:

( 1 ) Se genera un objeto de la clase Thread que controlará el hilo y que recibe como parámetro en su constructor la referencia del método que va a ejecutar como punto de entrada del hilo.

Thread h = new Thread( );

puede ser: Un método estático o uno de instancia.
Clase.metodo -> para un método estático [apéndice B]
objeto.metodo -> para un método de instancia [apéndice C]

( 2 ) Iniciar el objeto hilo que se acaba de generar, invocando al método
Start.
h.Start();

Si el método recibe un parámetro de tipo object este debe de indicarse ahora [apéndice F].

Referencias
[1] MSDN Library, ThreadState. enlace
Describe los estados que puede tener un hilo en .NET
Wilsonmar. Thread programming. enlace
Realiza comparaciones entre distintos lenguajes para programar en hilos.
Anita May Joseph. Introducing multithreaded programming in C#. enlace
MSDN Library, ParameterizedThreadStart. enlace
Muestra ejemplos y describe la clase ParameterizedThreadStart, que se utiliza
para definir un punto de inicio de un hilo con parámetros.



EN EL PROXIMO POST HABLAREMOS SOBRE HILOS Y METODOS DELEGADOS
Datos archivados del Taringa! original
24puntos
372visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

r
rolignu2🇦🇷
Usuario
Puntos0
Posts26
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.