Comment faire ObservableCollection thread-safe?

System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

Je suis d'ajout/suppression d'une ObservableCollection qui n'est pas sur un thread d'INTERFACE utilisateur.

J'ai une méthode noms EnqueueReport à ajouter à la collection et un DequeueReport supprimer de la collection.

Le flux d'étapes est comme ci-dessous :-

  1. 1.appel EnqueueReport chaque fois qu'un nouveau rapport est demandé
  2. appeler une méthode toutes les quelques secondes pour vérifier si le rapport est généré (ce qui a une boucle foreach qui vérifie l'généré le statut de tous les rapports ObservableCollection)
  3. appel DequeueReport si le rapport est généré

Je ne suis pas beaucoup plus dans les bibliothèques visual C#. Quelqu'un peut-il svp me guider sur ce?

Essayez celui-ci ObservableCollection et enfilage
Avec la .net framework, vous ne pouvez pas lier à une Collection Observable et puis le modifier à l'extérieur de la thread de l'INTERFACE utilisateur. Il y a quelques modèles autour, y compris des différés de la mise à jour de l'INTERFACE utilisateur, des insertions ou de la création d'un thread-safe de la classe de mise en œuvre de CollectionView.

OriginalL'auteur ilight | 2014-04-16