Avatar ·

¿Cómo y cuándo usar correctamente async y await en C#? Analizamos con ejemplos

¡Hola a todos! Soy un desarrollador C# principiante y no logro entender async/await. He leído muchos artículos, pero en la práctica sigo confundiéndome. Aquí hay un ejemplo simple. Tengo un método que carga datos desde un servidor web y los procesa. He oído que para operaciones largas (por ejemplo, descargar un archivo o una consulta a la base de datos) se debe usar async para no bloquear la UI. Pero escribí este código y sigue congelándose: ```csharp public async Task LoadDataAsync() { using (HttpClient client = new HttpClient()) { // Pensé que await haría magia var response = await client.GetStringAsync("https://example.com/data"); // ¡Pero la UI sigue congelándose durante la carga! return ProcessData(response); } } private void Button_Click(object sender, RoutedEventArgs e) { var result = LoadDataAsync().Result; // Aquí todo se congela textBox.Text = result; } ``` Noté varios problemas: 1. Si llamo a un método `async` de forma síncrona usando `.Result`,