You should be able to update your SourceList from a background thread. You shouldn't need all that complicated logic. Instead, use System.Reactive.Linq and the ObserveOn() extension just before you do your binding to a property that your UI actually uses.. In your viewmodel: SummaryData.Connect() .ObserveOn(RxApp.MainThreadScheduler) .Bind(out SummaryDataView) .Subscribe(); …
