Async y await: trabajo con código asíncrono
Domine la programación asíncrona para crear aplicaciones con capacidad de respuesta
Async y await: trabajo con código asíncrono es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 2 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 async y await
Async y await: trabajo con código asíncrono
¡Bienvenido a la siguiente lección! En esta lección, aprenderá a utilizar async y await en C# para escribir código asíncrono que mejore la capacidad de respuesta y el rendimiento de las aplicaciones. ¡Comencemos!

¿Qué es la programación asíncrona?
¿Qué es la programación asíncrona?
La programación asíncrona permite que las tareas se ejecuten de forma independiente sin bloquear el subproceso principal. Esto resulta especialmente útil para tareas como leer archivos, obtener datos de Internet o interactuar con bases de datos.
Punto clave: El código asíncrono mejora la capacidad de respuesta de las aplicaciones, especialmente en aplicaciones de interfaz de usuario y de servidor.
Comprender async y await
Comprender async y await
Async y await son palabras clave de C# que simplifican la programación asíncrona:
- async: Indica que un método es asíncrono.
- await: Pausa la ejecución del método hasta que finaliza la tarea esperada.
Punto clave: Los métodos async siempre devuelven un Task o Task<T>.
Crear un método asíncrono
Crear un método asíncrono
Creemos un método asíncrono para simular una tarea de larga duración. Ejemplo:
Consejo: Utilice Task.Delay() para simular retrasos en operaciones asíncronas.
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
Console.WriteLine("Starting task...");
await PerformTask();
Console.WriteLine("Task completed!");
}
static async Task PerformTask() {
await Task.Delay(3000); // Simulates a 3-second delay
Console.WriteLine("Task is running...");
}
}
Devolver un valor desde un método asíncrono
Devolver un valor desde un método asíncrono
Los métodos asíncronos pueden devolver valores mediante Task<T>. Ejemplo:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
int result = await CalculateSumAsync(10, 20);
Console.WriteLine("Result: " + result);
}
static async Task<int> CalculateSumAsync(int a, int b) {
await Task.Delay(1000); // Simulates a delay
return a + b;
}
}
Controlar excepciones en código asíncrono
Controlar excepciones en código asíncrono
Utilice try-catch para controlar excepciones en métodos asíncronos. Ejemplo:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
try {
await DivideAsync(10, 0);
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
static async Task DivideAsync(int a, int b) {
await Task.Delay(1000);
if (b == 0) throw new DivideByZeroException("Cannot divide by zero.");
Console.WriteLine("Result: " + (a / b));
}
}
Desafío práctico
Desafío práctico
Cree un método asíncrono que obtenga datos de una URL y muestre su contenido. Ejemplo:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
string url = "https://jsonplaceholder.typicode.com/todos/1";
string data = await FetchDataAsync(url);
Console.WriteLine("Data: " + data);
}
static async Task<string> FetchDataAsync(string url) {
using HttpClient client = new HttpClient();
return await client.GetStringAsync(url);
}
}
Buenas prácticas para la programación asíncrona
Buenas prácticas para la programación asíncrona
Estas son algunas buenas prácticas:
- Utilice
asyncyawaitpara tareas que impliquen operaciones de E/S o cálculos de larga duración. - Evite bloquear el código asíncrono con
.Resulto.Wait(). - Controle las excepciones para evitar errores no controlados.
- Utilice
ConfigureAwait(false)en el código de bibliotecas para evitar interbloqueos.
Consejo: Mantenga sus métodos asíncronos concisos y centrados en una única responsabilidad.
¡Excelente trabajo!
¡Excelente trabajo!
¡Enhorabuena! Ha aprendido a utilizar async y await para escribir código asíncrono en C#. En la próxima lección, exploraremos los hilos y las tareas para la programación paralela. ¡Sigamos programando!
Haga clic en Continuar para pasar a la siguiente lección.

Preguntas frecuentes
¿La lección «Async y await: trabajo con código asíncrono» es gratis?
Sí — el texto completo de «Async y await: trabajo con código asíncrono» 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 «Async y await: trabajo con código asíncrono»?
Domine la programación asíncrona para crear aplicaciones con capacidad de respuesta 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 2 de 5.
¿Cuánto tiempo toma la lección «Async y await: trabajo con código asíncrono»?
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
- Genéricos en C#
- Async y await: trabajo con código asíncrono
- Comprender los subprocesos y las tareas
- Exploración de delegados y lambdas
- Comprender la reflexión en C#