WPF UI на нескольких потоках?

У меня есть большое приложение WPF MVVM (более 100 окон в настоящее время и растет.) Хотя я пытаюсь сделать все возможное в фоновых потоках, всегда приходит время, когда результаты должны быть отправлены обратно в поток пользовательского интерфейса для отображения. Если у вас много окон, которые делают это одновременно, это может повлиять на производительность.

В прошлом я пытался запустить каждое окно в отдельном потоке пользовательского интерфейса, но столкнулся с таким большим количеством проблем с потоками, что мне пришлось вернуться к стандартной модели WPF, состоящей только из 1 потока пользовательского интерфейса на приложение.

Я знаю, что с приходом Windows 10 многие пользователи откроют еще больше окон на отдельных рабочих столах, что ухудшит ситуацию.

Кто-нибудь знает, как заставить несколько потоков пользовательского интерфейса работать правильно в WPF? Или есть какая-нибудь информация, которую я могу исследовать, чтобы помочь моему приложению продвинуться дальше?

Я подходил, я пытался в прошлом сделать что-то похожее на это:

private void OnCreateNewWindow(
   object sender,
   RoutedEventArgs e)
  {
   Thread thread = new Thread(() =>
    {
     Window1 w = new Window1();
     w.Show();

     w.Closed += (sender2, e2) =>
      w.Dispatcher.InvokeShutdown();

     System.Windows.Threading.Dispatcher.Run();
    });

   thread.SetApartmentState(ApartmentState.STA);
   thread.Start();
  }

Это было около 2 лет назад, и я больше не могу вспомнить все проблемы, с которыми я столкнулся, используя это, к сожалению.

Есть ли другой способ? Кто-нибудь получил приложение с множеством окон для правильной работы, используя этот подход или другой?