Вы правы в том, что WPF дает нам Dispatcher
для упрощения многопоточности; но если вы хотите разделить проблемы с шаблоном MVVM, вам необходимо реализовать другую стратегию потоков.
Я всегда находил класс BackgroundWorker
более чем достаточным, чтобы удовлетворить это, отправляя обновления обратно в поток пользовательского интерфейса, чтобы вы могли обновить ObservableCollection
в ВМ и распространить изменения в представлении. *