opération inter-thread interdite : là c'est pas normal !
Bonjour,
je réalise une application qui utilise des threads pour réaliser de gros traitements de données. j'utilise le composant backgroundWorker.
un de mes traitements ne fonctionne pas car il y a une exception m'indiquant une opération inter-thread interdite. cette exception est présente sur l'accès à une ListBox mais à travers un delegate, donc en théorie pas de soucis. dans mon autre thread qui fonctionne j'accède à des ListView sans soucis.
voici le code incriminé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| private delegate ListBox.SelectedObjectCollection DGetLbColonnes();
private ListBox.SelectedObjectCollection GetLbColonnes()
{
ListBox lb = lbColonnes;
return lb.SelectedItems;
}
private void bwExporter_DoWork(object sender, DoWorkEventArgs e)
{
List<string> colTab = new List<string>();
IAsyncResult ias = this.BeginInvoke(new DGetLbColonnes(GetLbColonnes));
ListBox.SelectedObjectCollection lbc = (ListBox.SelectedObjectCollection)this.EndInvoke(ias);
foreach (Object v in lbc)
{
colTab.Add(v.ToString());
MessageBox.Show(v.ToString());
}
} |
si vous avez une idée, merci de m'aider ;)