WPF UI en múltiples hilos?

Tengo una gran aplicación WPF MVVM (más de 100 ventanas actualmente y en crecimiento). Aunque trato de hacer todo lo que puedo en los subprocesos en segundo plano, siempre llega un momento en que los resultados deben enviarse nuevamente al subproceso de la interfaz de usuario para que se muestren. Cuando tiene muchas ventanas haciendo esto al mismo tiempo, puede afectar el rendimiento.

Intenté ejecutar cada ventana en un subproceso de interfaz de usuario diferente en el pasado, pero encontré tantos problemas de subprocesos que tuve que volver al modelo predeterminado de WPF de solo 1 subproceso de interfaz de usuario por aplicación.

Sé que con Windows 10 próximamente, muchos usuarios abrirán aún más ventanas en escritorios separados y, por lo tanto, esto empeorará.

¿Alguien sabe cómo hacer que varios subprocesos de la interfaz de usuario funcionen correctamente en WPF? ¿O tengo alguna información que pueda investigar para ayudar a que mi aplicación avance más en este camino?

Enfoque que intenté en el pasado era hacer algo similar a esto:

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();
  }

Esto fue hace aproximadamente 2 años y desafortunadamente ya no puedo recordar todos los problemas que enfrenté al usar esto.

¿Hay otra manera? ¿Alguien ha conseguido que una aplicación con muchas ventanas funcione correctamente utilizando este enfoque u otro?

Respuestas a la pregunta(1)

Su respuesta a la pregunta