Avatar ·

Cómo actualizar la GUI desde otro hilo en C# WinForms?

¡Saludos, colegas! Soy un desarrollador principiante de C# y me he encontrado con un problema que me está volviendo loco. Tengo una aplicación de Windows Forms que realiza una operación larga (por ejemplo, procesar una gran lista de archivos o descargar datos de Internet). Para evitar que la interfaz se congele, ejecuto esta operación en un hilo separado usando `Task.Run` o `Thread`. Aquí hay un ejemplo simplificado de mi código: ```csharp private void buttonStart_Click(object sender, EventArgs e) { Task.Run(() => LongRunningOperation()); } private void LongRunningOperation() { for (int i = 0; i < 100; i++) { // Algún trabajo Thread.Sleep(100); // Intento actualizar el ProgressBar progressBar1.Value = i; // O el Label labelStatus.Text = $"Procesado {i} de 100"; } } ``` Pero cuando ejecuto la aplicación y hago clic en el botón, se bloquea con una excepción: **"System.InvalidOperationException: 'Cross-thread operation not valid: Control 'progress