I am using the `BackgroundWorker` to update an `ObservableCollection` but it gives this error:

> 
> "This type of `CollectionView` does
>  not support changes to its
>  `SourceCollection` from a thread
>  different from the Dispatcher thread."
> 
> 
> 

What's the best and most elegant way to solve this, with the least amount of work. I don't want to write low level lock-based multi-threading code.

I have seen some solutions online but they are several years old, so not sure what the latest consensus is for the solution of this problem.