Je me sers du BackgroundWorker
de mettre à jour un ObservableCollection
mais il donne cette erreur:Quelle est la meilleure façon de mettre à jour un ObservableCollection à partir d'un autre thread?
"This type of
CollectionView
does not support changes to itsSourceCollection
from a thread different from the Dispatcher thread."
Quelle est la meilleure et la plus élégante de résoudre ce, avec le moins de travail. Je ne veux pas écrire de code multi-threading bas niveau basé sur le verrouillage.
J'ai vu quelques solutions en ligne mais elles ont plusieurs années, donc je ne sais pas quel est le consensus le plus récent pour la solution de ce problème.
vérifier cela: http://stackoverflow.com/questions/528999/why-arent-classes-like-bindinglist-or-observablecollection-thread-safe – geofftnz
Exact duplicate: http://stackoverflow.com/questions/ 187069/impossible d'exploiter-observerablecollection-in-multi-threads. La réponse de Mark Ingram semble être ce que vous cherchez. –
J'ai regardé la réponse de Mark mais je n'ai pas compris. Il utilise Monitor mais quelle est la méthode DoEvents? Aussi comment ça marche, la prise d'essai est en dehors du moment. Le verrou est-il toujours en vigueur à ce moment-là? –