c# - 在 ObservableCollection.CollectionChanged 上运行昂贵的操作

标签 c# event-handling observablecollection

在我的模型中,我需要知道特定集合何时发生更改,因此我订阅了 ObservableCollection 的 CollectionChanged 事件。除了该操作相当耗费资源外,它工作得非常好。

所以当客户端代码做的时候:

foreach(Item i in longList)
{
    model.ObservableCollection.Add(i);
}

当所有重要的是添加最终项目后的结果时,我正在为每次迭代运行昂贵的操作。

如果在第一个 CollectionChanged 事件仍在执行时引发另一个事件处理程序,是否有取消当前正在运行的事件处理程序的方法 - 然后继续处理最近的事件?

最佳答案

ObservableCollection 不是密封类。派生您自己的并添加 BeginUpdate 和 EndUpdate() 方法以及 IsUpdating 属性。

关于c# - 在 ObservableCollection.CollectionChanged 上运行昂贵的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087906/

相关文章:

c# - WPF : Remove control's explicit foreground color

c# - 如何对性能计数器类别进行版本控制?

c++ - 在 Visual C++ 中单击按钮显示和隐藏图形

.net - 使用 lambda 的 ObservableCollection 切片

c# - 在 C# 中运行更新查询后数据库没有变化

c# - 如何更改 Request.RawUrl 属性?

c# - 单元测试 COM 事件?

javascript - 日志记录对 native 事件使用react,console.log 未触发并最终使应用程序崩溃

c# - 如何在不锁定 GUI 的情况下将数千个项目添加到绑定(bind)集合

c# - 可观察集合 : calling OnCollectionChanged with multiple new items