title: Using an ObservableCollection<T> with Background Threads
body: <p>It seems like Microsoft had a great idea with the ObservableCollection.  They are great for binding, and are super fast on the UI.</p>
  
  <p>However, requiring a context switch to the Dispatcher Thread every time you want to tweak it seems like a bit much.  Does anyone know the best practices for using them?  Is it simply to populate an ICollection as a message object in the business layer, then create the ObservableCollection in the UI layer?  How do you then handle updates to the collection on the UI?</p>