调度线程和UI线程有什么区别?

17

在WPF中,UI线程和Dispatcher线程是相同的吗?还是存在什么区别?

2个回答

16

Dispatcher 负责管理线程的工作。

UI 线程是呈现 UI 的线程。

UI 线程将工作项排队到一个叫做 Dispatcher 的对象中。 Dispatcher 按照优先级选择工作项,每个工作项都被执行一次直到完成。 每个 UI 线程必须至少有一个 Dispatcher, 并且每个 Dispatcher 只能在一个线程中执行工作项。

阅读这篇文章,可以更详细地了解 WPF 中的 UI 渲染


6
UI线程是一个通用术语(它不特定于WPF),用来描述与UI组件相关联的线程。通常情况下,每个应用程序只有一个UI线程(此时称为the UI线程),但如果不同的UI组件(通常是窗口)与不同的线程相关联,则可以有更多的UI线程。 Dispatcher是WPF使用的机制,用来将组件与线程关联并在该线程上执行工作。但是也可能存在一个具有Dispatcher但没有关联UI组件的线程。在这种情况下,它是一个调度程序线程,但不是UI线程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接