Avatar ·

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

¡Hola a todos! Soy un desarrollador principiante de C# y estoy escribiendo una pequeña aplicación en WinForms. Tengo un botón que, al hacer clic, inicia una operación larga (por ejemplo, cargar datos de internet o procesar un archivo grande). Quiero que la interfaz siga siendo receptiva durante la ejecución de esta operación, por lo que la ejecuto en un hilo separado usando `Task.Run`. El problema surge cuando intento actualizar elementos de la interfaz (por ejemplo, ProgressBar, Label o TextBox) desde este hilo de fondo. La aplicación falla con la excepción: "InvalidOperationException: Cross-thread operation not valid. Control 'progressBar1' accessed from a thread other than the thread it was created on." Aquí hay un ejemplo de mi código: ```csharp private void buttonStart_Click(object sender, EventArgs e) { Task.Run(() => DoWork()); } private void DoWork() { for (int i = 0; i <= 100; i++) { // Simulación de trabajo largo Thread.Sleep(50); // Intento actualizar la barra de progreso } } ```