WPF 调度程序 VS Winform UI 线程控件调用

本文关键字:线程 控件 调用 UI Winform 调度程序 VS WPF | 更新日期: 2023-09-27 18:31:02

我有一个查询,在Winform(UI Thread)控件Invoke中是用来处理跨线程问题的,那么为什么在WPF中引入了调度程序?调度程序的其他优点是什么?

请帮助我理解这一点。

WPF 调度程序 VS Winform UI 线程控件调用

在 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()方法大致相同的工作。它只是更闪亮一点,并为实现相同的基本目标提供了更微妙的机制。