Relações do Dispatcher to Thread no WPF

Não está totalmente claro para mim quantos Dispatchers existem em um aplicativo e como eles estão relacionados ou referenciados nos Threads.

Pelo que entendi, um aplicativo WPF possui 2 threads (um para entrada e outro para UI) e 1 despachante (associado ao UI-Thread). E se eu criar outro thread - vamos chamá-lo de "thread de trabalho" - quando eu chamarDispatcher.CurrentDispatcher no segmento de trabalho, qual expedidor receberei?

Outro caso: suponha um aplicativo de console com 2 threads - o thread principal e um thread de entrada. No thread principal, primeiro crio o thread de entrada e depois chamoApplication.Run()

Thread thread = new Thread(new ThreadStart(UserInputThreadFunction));
thread.Start();
Application.Run();

Haverá um despachante, certo? No thread de entrada, Dispatcher.CurrentDispatcher retorna o distribuidor do thread principal? Ou qual é a maneira correta de obter uma instância para o despachante do thread principal?

Pode ser que haja mais de um expedidor em um aplicativo WPF? Existe algum caso, faria sentido criar outro expedidor?

questionAnswers(3)

yourAnswerToTheQuestion