Thread en C#
La clase Thread en C# permite crear y gestionar hilos (threads) de forma manual para ejecutar
tareas en paralelo.
Esto mejora el rendimiento de aplicaciones al permitir la ejecución concurrente, pero requiere cuidado con
la sincronización y la gestión de recursos compartidos.
Crear un Thread
Puedes crear un hilo pasando un método o una lambda al constructor de Thread.
void ImprimirMensaje() {
Console.WriteLine("Hola desde otro hilo!");
}
Thread hilo = new Thread(ImprimirMensaje);
hilo.Start();
El método Start() inicia la ejecución en paralelo.
Usar lambdas con Thread
También puedes pasar expresiones lambda para mayor flexibilidad.
Thread hiloLambda = new Thread(() => {
Console.WriteLine("Ejecución en hilo lambda.");
});
hiloLambda.Start();
Esto es útil para definir la lógica inline.
Sincronización
Al usar varios hilos, debes evitar condiciones de carrera al acceder a recursos compartidos.
object bloqueo = new object();
int contador = 0;
Thread hiloSync = new Thread(() => {
lock (bloqueo) {
contador++;
Console.WriteLine($"Contador: {contador}");
}
});
hiloSync.Start();
La palabra clave lock garantiza acceso exclusivo al recurso.
Buenas Prácticas
Usa Thread para tareas de bajo nivel solo cuando necesites control total.
Prefiere Task o ThreadPool para abstracciones más sencillas y eficientes.
Sincroniza correctamente el acceso a datos compartidos.
Evita crear demasiados hilos para no saturar el sistema.