gpt4 book ai didi

performance - XE3 中自动更新的实时绑定(bind)(无需像 XE2 中那样调用 Notify())

转载 作者:行者123 更新时间:2023-12-03 14:32:27 24 4
gpt4 key购买 nike

我目前正在使用 Delphi XE2,并且听说了 XE3 中带有自动更新功能的新实时绑定(bind)(无需像 XE2 中那样调用 Notify())。

在 C# 或 Delphi XE2 中,我们必须实现 INotifyPropertyChanged(Delphi 中为 Notify();),这种方法确实很有意义,因为我们可以完全控制需要更新的内容以及何时更新,以便我们可以微调性能并轻松实现虚拟化。

但我只是想知道它是如何工作的,他们做了什么样的机制来实现它,我不知道他们是如何做到的,以下是可能用于实现自动更新的假设。

  1. 定时器:定时器频繁滴答并刷新所有数据

    Very slow performance no virtualization

  2. 编译器级功能:编译器自动实现的所有 notify() 事件相关代码

    Lots of over heads

  3. 一些其他方法:

请帮助我确定他们是如何实现的。

我目前正在使用 XE3 试用版,因此无法访问源代码,您的答案将帮助我决定是否切换到新功能
我有一个类(集合项),有 400 个属性要绑定(bind)(并非总是全部),因此性能确实对我的应用程序的稳定性起着重要作用。

最佳答案

LiveBindings 通过根据某些事件将任何对象与另一个感兴趣的对象绑定(bind)来发生。这是通过观察者模式发生的,当有事件触发时,对象检查器将收到通知,检查器将通知已注册的组件显示更改。

希望这有帮助。如果您想深入研究,有很多这方面的文档。

关于performance - XE3 中自动更新的实时绑定(bind)(无需像 XE2 中那样调用 Notify()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658470/

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