В чем разница между потоком диспетчера и потоком пользовательского интерфейса

Является ли поток пользовательского интерфейса и поток диспетчера одинаковыми в WPF или есть какая-то разница?

Ответ 1

A Dispatcher отвечает за управление работой для потока.

Нить UI - это поток, который отображает пользовательский интерфейс.

Очереди потоков пользовательского интерфейса обрабатывают элементы внутри объекта, называемого диспетчером. Диспетчер выбирает рабочие элементы в приоритетном порядке и запускает каждый один до завершения. Каждый поток пользовательского интерфейса должен иметь как минимум один диспетчер, и каждый диспетчер может выполнять рабочие элементы только в одном потоке.

Из этой статьи. Прочтите его для более подробного описания рендеринга пользовательского интерфейса в WPF.

Ответ 2

Нить UI - это общий термин (он не специфичен для WPF) и описывает поток, с которым связаны компоненты пользовательского интерфейса. Обычно для каждого приложения существует только один поток пользовательского интерфейса (в этом случае он называется потоком пользовательского интерфейса), но может быть и больше, если разные компоненты пользовательского интерфейса (как правило, окна) связаны с разными потоками.

Dispatcher - это механизм, который WPF использует для связывания компонента с потоком и для выполнения работы над этим потоком. Но также может быть поток с Dispatcher, но не связанный с ним компонент пользовательского интерфейса. В этом случае это поток диспетчера, но не поток пользовательского интерфейса.