Je reçois actuellement des exceptions lors de la modification d'une IBindingList sur plusieurs threads. Quelqu'un at-il une version threadsafe avant d'écrire le mien?Est-ce que quelqu'un a écrit un BindingList thread-sûr <T>?
1
A
Répondre
2
Je pense que vous trouverez cette tâche incroyablement difficile. Le chemin plus facile serait d'empêcher l'accès multiple avec un fil lock
:
void AddItemToList(object o)
{
lock(myBindingList)
{
myBindingList.Add(o);
}
}
Regardez le lock statement docs pour plus d'informations.
1
Cela ne devrait-il pas être verrouillé (_mySyncObject)? – ilitirit
C'est insuffisant. La liaison de données ne respectera pas votre verrouillage. Lorsque la liste de liaison change, l'interface utilisateur tente immédiatement de mettre à jour et vous obtiendrez une erreur de thread croisé. – TrueWill