2008-09-29 15 views

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

+2

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

1

Je viens de trouver cet article ... voulez-vous dire like this?

+1

Bit d'une implémentation superficielle. Qu'en est-il de tous les autres zillions de méthodes qui auraient besoin d'être syncronalisées (et pas des moindres: GetEnumerator())? – piers7