Fehler Cross-thread operation not valid: Wie greife ich in C# WinForms von einem anderen Thread auf Steuerelemente zu
Hallo zusammen! Ich bin neu in C# und WinForms und hänge an einem Problem mit Multithreading fest. Ich schreibe eine Anwendung, die Daten aus dem Internet lädt und in einer ListBox anzeigt. Damit die Benutzeroberfläche nicht einfriert, starte ich den Download in einem separaten Thread mit Task.Run. Hier ist der vereinfachte Code:
```csharp
private void buttonStart_Click(object sender, EventArgs e)
{
Task.Run(() => LoadData());
}
private void LoadData()
{
for (int i = 0; i < 10; i++)
{
// Simulation des Datenladens
Thread.Sleep(1000);
// Versuche, ein Element zur ListBox hinzuzufügen
listBoxResult.Items.Add("Element " + i);
}
}
```
Beim Ausführen in der Zeile `listBoxResult.Items.Add(...)` wird eine Ausnahme ausgelöst: "Cross-thread operation not valid: Control 'listBoxResult' accessed from a thread other than t