As of .net framwork 4.5 you can use native collection synchronization.
BindingOperations.EnableCollectionSynchronization(YourCollection, YourLockObject);
YourLockObject
is instance of any object e.g. new Object();
. Use one per collection.
This eliminates the need of some special class or anything. Just enable and enjoy ;)
[edit]
As stated in the comments by Mark and Ed (thanks for clarifying!), this does not relieve you from locking the collection on updates as it just synchonizes the collection-view-binding and does not magically make the collection thread-safe itself.
[/edit]
PS: BindingOperations
resides in Namespace System.Windows.Data
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…