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é :
si vous avez une idée, merci de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); } }![]()
Partager