Avatar ·

Cross-thread operation not valid: Wie man auf Steuerelemente aus einem anderen Thread in C# WinForms zugreift

Hallo zusammen! Ich bin neu in C# und WinForms und bin auf ein Problem mit Multithreading gestoßen. Ich schreibe eine Anwendung, die Daten aus dem Internet lädt und in einem ListBox anzeigt. Damit die Benutzeroberfläche nicht einfriert, starte ich das Laden in einem separaten Thread mit Task.Run. Hier ist der vereinfachte Code:\n\n```csharp\nprivate void buttonStart_Click(object sender, EventArgs e)\n{\n Task.Run(() => LoadData());\n}\n\nprivate void LoadData()\n{\n for (int i = 0; i < 10; i++)\n {\n // Simulation des Datenladens\n Thread.Sleep(1000);\n // Versuche, ein Element zum ListBox hinzuzufügen\n listBoxResult.Items.Add("Element " + i);\n }\n}\n```\n\nBeim Ausführen wird in der Zeile `listBoxResult.Items.Add(...)` eine Exception ausgelöst: "Cross-thread operation not valid: Control 'listBoxResult' accessed from a thread other than t