Erreur Cross-thread operation not valid : comment accéder aux contrôles depuis un autre thread en C# WinForms
Bonjour à tous ! Je suis débutant en C# et WinForms, et je suis bloqué sur un problème de multithreading. J'écris une application qui charge des données depuis Internet et les affiche dans un ListBox. Pour éviter que l'interface ne se bloque, je lance le chargement dans un thread séparé via Task.Run. Voici le code simplifié :
```csharp
private void buttonStart_Click(object sender, EventArgs e)
{
Task.Run(() => LoadData());
}
private void LoadData()
{
for (int i = 0; i < 10; i++)
{
// Simulation du chargement de données
Thread.Sleep(1000);
// J'essaie d'ajouter un élément au ListBox
listBoxResult.Items.Add("Élément " + i);
}
}
```
Au lancement, sur la ligne `listBoxResult.Items.Add(...)`, une exception est levée : "Cross-thread operation not valid: Control 'listBoxResult' accessed from a thread other than t
No answers yet.
Connectez-vous pour laisser une réponse