gpt4 book ai didi

c# - 新的 ObservableCollection 与在循环中添加项目

转载 作者:太空狗 更新时间:2023-10-30 00:43:58 24 4
gpt4 key购买 nike

就速度和生成的通知数量而言,这段代码是:

ObservableCollection<Foo> foo = new ObservableCollection<Foo>(bar);
this.SomeProperty = foo;

等同于:

this.SomeProperty = new ObservableCollection<Foo>();

foreach (var v in bar)
{
this.SomeProperty.Add(v);
}

如果它们相同,是否可以以某种方式关闭生成的通知?

目标:我正在尝试加快 Telerik RadChart 在 silverlight 中的显示速度。即使在设置了包含 ObservableCollection 的属性之后,似乎也需要一段时间才能显示(并卡住浏览器中的应用程序)。绘制图表后,一切正常。

最佳答案

  1. 分析它或测试它!根据文档, PropertyChanged添加、删除项目时发生事件,更改、移动或刷新整个列表。因此你可以编写一些只订阅此事件的测试代码,看看会发生什么发生。

  2. Fast performing and thread safe observable collection - 如果是由于持续不断的 OnChanged 事件,请考虑仅在批量更新后触发 - 已经有人为您完成了这项工作

  3. http://www.telerik.com/help/silverlight/radchart-performance-tips-and-tricks.html专门处理您在页面一半左右描述的场景。他们的结论与 2 相同——事实上,代码看起来非常相似:-)

如果卡住发生在绑定(bind)实际发生之前,那么我将确保延迟实际上不是基于渲染或由于其他事件(例如加载集合所花费的时间)。同样,分析是您的 friend 。

关于c# - 新的 ObservableCollection 与在循环中添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098627/

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