0Pricing
C# Academy · Lección

Comprender los subprocesos y las tareas

Explore los subprocesos y las tareas para gestionar el procesamiento paralelo en C#

Comprender los subprocesos y las tareas es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 3 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 5 lecciones en total.

Introducción a los hilos y las tareas

Comprender los hilos y las tareas

¡Bienvenido a la siguiente lección! En esta lección, aprenderá sobre los hilos y las tareas en C#, que permiten ejecutar varias operaciones simultáneamente para mejorar el rendimiento. ¡Comencemos!

Comprender los subprocesos y las tareas — ilustración 1

¿Qué son los hilos?

¿Qué son los hilos?

Los hilos son el mecanismo mediante el cual se ejecutan varias operaciones simultáneamente. Cada hilo representa un flujo de control independiente en su aplicación.

Punto clave: Los hilos mejoran el rendimiento al utilizar varios núcleos del procesador para la ejecución simultánea.

Crear e iniciar hilos

Crear e iniciar hilos

Puede crear e iniciar hilos mediante la clase Thread. Ejemplo:

using System;
using System.Threading;

class Program {
    static void Main() {
        Thread thread = new Thread(PrintNumbers);
        thread.Start();

        Console.WriteLine("Main thread is running...");
    }

    static void PrintNumbers() {
        for (int i = 1; i <= 5; i++) {
            Console.WriteLine(i);
            Thread.Sleep(1000); // Pause for 1 second
        }
    }
}

Introducción a las tareas

Introducción a las tareas

Las tareas proporcionan una abstracción de más alto nivel para la programación concurrente que los hilos. La clase Task forma parte de Task Parallel Library (TPL) en C#.

Ejemplo: Crear e iniciar una tarea:

Consejo: Las tareas son más fáciles de administrar y ofrecen un mejor control de errores que los hilos.

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        Task task = Task.Run(() => {
            for (int i = 1; i <= 5; i++) {
                Console.WriteLine(i);
                Task.Delay(1000).Wait();
            }
        });

        Console.WriteLine("Main thread is running...");
        task.Wait(); // Wait for the task to complete
    }
}

Usar Parallel.For y Parallel.ForEach

Usar Parallel.For y Parallel.ForEach

La clase Parallel de C# permite ejecutar bucles en paralelo para mejorar el rendimiento. Ejemplo:

Punto clave: Utilice Parallel.For y Parallel.ForEach para tareas con un uso intensivo de datos que puedan ejecutarse simultáneamente.

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        Parallel.For(0, 5, i => {
            Console.WriteLine($"Processing {i} on thread {Task.CurrentId}");
        });

        Console.WriteLine("All tasks completed.");
    }
}

Controlar excepciones en tareas

Controlar excepciones en tareas

Puede capturar excepciones en las tareas mediante un bloque try-catch o la propiedad Task.Exception. Ejemplo:

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        try {
            Task task = Task.Run(() => {
                throw new InvalidOperationException("Task failed!");
            });

            task.Wait();
        } catch (AggregateException ex) {
            Console.WriteLine("Error: " + ex.InnerException.Message);
        }
    }
}

Desafío práctico

Desafío práctico

Cree un programa que inicie varias tareas para procesar números en paralelo y muestre sus cuadrados. Ejemplo:

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        int[] numbers = { 1, 2, 3, 4, 5 };

        Parallel.ForEach(numbers, number => {
            Console.WriteLine($"Square of {number}: {number * number}");
        });
    }
}

Buenas prácticas para hilos y tareas

Buenas prácticas para hilos y tareas

Estas son algunas buenas prácticas:

  • Prefiera Task en lugar de Thread para la concurrencia de alto nivel.
  • Utilice las clases Parallel para operaciones con un uso intensivo de datos.
  • Controle las excepciones correctamente para garantizar aplicaciones robustas.
  • Limite el número de hilos o tareas para evitar la competencia por los recursos.

Consejo: Utilice programación asíncrona cuando predominen las operaciones de E/S, y utilice hilos o tareas para tareas limitadas por la CPU.

¡Excelente trabajo!

¡Excelente trabajo!

¡Enhorabuena! Ha aprendido los conceptos básicos de los hilos y las tareas para la programación concurrente en C#. En la próxima lección, profundizaremos en los delegados y las expresiones lambda, dos funciones muy potentes para la programación funcional. ¡Sigamos programando!

Comprender los subprocesos y las tareas — ilustración 10

Preguntas frecuentes

¿La lección «Comprender los subprocesos y las tareas» es gratis?

Sí — el texto completo de «Comprender los subprocesos y las tareas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 5 lecciones en total.

¿Qué aprenderé en «Comprender los subprocesos y las tareas»?

Explore los subprocesos y las tareas para gestionar el procesamiento paralelo en C# Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 5.

¿Cuánto tiempo toma la lección «Comprender los subprocesos y las tareas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Genéricos en C#
  2. Async y await: trabajo con código asíncrono
  3. Comprender los subprocesos y las tareas
  4. Exploración de delegados y lambdas
  5. Comprender la reflexión en C#
← Volver a C# Academy