CSharp Cheat sheet

Tu guía rápida para programar en C#

Task en C#

La clase Task en C# representa una operación asincrónica que puede ejecutarse en segundo plano. Permite escribir código no bloqueante y aprovechar mejor los recursos del sistema, mejorando la capacidad de respuesta de aplicaciones cliente y la escalabilidad de servidores.

Crear y ejecutar una Task

Puedes iniciar una Task para ejecutar una acción en paralelo.

Task tarea = Task.Run(() => {
    Console.WriteLine("Ejecutando en un hilo diferente.");
});
    

El método Run programa el trabajo en el pool de hilos.

Task con resultado

Puedes usar Task<T> para devolver valores.

Task tareaSuma = Task.Run(() => {
    return 5 + 3;
});

int resultado = tareaSuma.Result;
Console.WriteLine($"Resultado: {resultado}");
    

Aunque puedes usar .Result, es mejor await en métodos async.

Esperar una Task

En métodos asincrónicos, puedes usar await para esperar sin bloquear.

public async Task ObtenerSumaAsync() {
    return await Task.Run(() => 5 + 3);
}
    

Esto libera el hilo mientras la tarea se completa.

Buenas Prácticas

Usa Task para operaciones costosas o I/O asincrónico. Evita .Result o .Wait() en código UI para prevenir deadlocks. Maneja excepciones usando try/catch o Task.Exception. Usa ConfigureAwait(false) en librerías para evitar capturar contextos innecesarios.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs