WPF 调度程序 VS Winform UI 线程控件调用
本文关键字:线程 控件 调用 UI Winform 调度程序 VS WPF | 更新日期: 2023-09-27 18:31:02
我有一个查询,在Winform(UI Thread)控件Invoke中是用来处理跨线程问题的,那么为什么在WPF中引入了调度程序?调度程序的其他优点是什么?
请帮助我理解这一点。
在 WPF 中引入Dispatcher
的主要原因是 WPF 不是 WinForms,并且 WinForms 类成员与 WPF 对象无关。他们必须做点什么。
Microsoft能否像实现 WinForms 一样实现 WPF?确定。但是 WPF 是一种根本不同的 API,他们借此机会重新设计处理线程相关性的范例是有道理的,线程亲和性在编写任何 Windows 软件(托管软件或其他软件)时自然发生。
请注意,WPF,特别是调度程序,是比 WinForms 及其Invoke()
方法更高级的抽象。该应用程序对Dispatcher
的控制比WinForms程序对Invoke()
的控制更多。该Dispatcher
支持不同的优先级,甚至支持可以在不同线程中安全使用的DispatcherObject
异常(请参阅Freezable
)。
根结底,WPF 的Dispatcher
正在执行与 WinForm Invoke()
方法大致相同的工作。它只是更闪亮一点,并为实现相同的基本目标提供了更微妙的机制。