gpt4 book ai didi

c# - WPF Dispatcher VS Winform UI 线程控制调用

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:44 25 4
gpt4 key购买 nike

我有一个疑问,Winform(UI Thread)控件中的Invoke是用来处理跨线程问题的,那WPF为什么要引入Dispatcher呢? Dispatcher 的其他优势是什么?

请帮助我理解这一点。

最佳答案

在 WPF 中引入 Dispatcher 的主要原因是 WPF 不是 WinForms,并且 WinForms 类成员与 WPF 对象无关。他们必须做点什么

Microsoft 能否以与 WinForms 完全相同的方式实现 WPF?当然。但 WPF 是一种根本不同的 API,他们借此机会重新设计处理线程关联的范例是有道理的,这种线程关联在编写任何 Windows 软件(无论是托管的还是其他方式)时自然发生。

请注意,WPF,尤其是 Dispatcher,是比 WinForms 及其 Invoke() 方法更高级别的抽象。应用程序对 Dispatcher 的控制比 WinForms 程序对 Invoke() 的控制要多。 Dispatcher 支持不同的优先级,甚至支持可以在不同线程中安全使用的 DispatcherObject 异常(参见 Freezable)。

归根结底,WPF 的 Dispatcher 所做的工作与 WinForm 的 Invoke() 方法大致相同。它只是更 Shiny 一点,并提供了更细微的机制来实现相同的基本目标。

关于c# - WPF Dispatcher VS Winform UI 线程控制调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27034119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com