Avatar ·

Error Cross-thread operation not valid: cómo acceder a los controles desde otro hilo en C# WinForms

¡Hola a todos! Soy nuevo en C# y WinForms, y me he quedado atascado en un problema con multihilo. Estoy escribiendo una aplicación que carga datos de internet y los muestra en un ListBox. Para que la interfaz no se congele, ejecuto la carga en un hilo separado usando Task.Run. Aquí está el código simplificado: ```csharp private void buttonStart_Click(object sender, EventArgs e) { Task.Run(() => LoadData()); } private void LoadData() { for (int i = 0; i < 10; i++) { // Simulación de carga de datos Thread.Sleep(1000); // Intento agregar un elemento al ListBox listBoxResult.Items.Add("Elemento " + i); } } ``` Al ejecutar, en la línea `listBoxResult.Items.Add(...)` se lanza una excepción: "Cross-thread operation not valid: Control 'listBoxResult' accessed from a thread other than the thread it was created on". Entiendo que esto se debe a que los controles se crearon en el hilo principal, pero yo accedo a ellos desde un hilo de fondo. ¿Cómo puedo solucionarlo correctamente? He leído sobre Invoke y BeginInvoke,