gpt4 book ai didi

c# - 限制每秒绑定(bind)更新

转载 作者:行者123 更新时间:2023-11-30 22:07:55 25 4
gpt4 key购买 nike

我目前正在创建一个程序,该程序读取通过 COM 端口发送的数据,然后将其实时绘制在图表中。数据显示使用 MVVM 原理,当数据以 10Hz 左右发送时,该原理可以正常工作。但是,正在读取数据的设备可以达到 1 kHz 的刷新率,这意味着每分钟 1000 个数据集。这适用于显示和更新简单的文本框,但它会破坏图表,因为更新速度太快。

我认为我现在需要做的是限制发送到订阅的类和页面的更新事件的数量,以便只发送有限数量的数据,从而使图表有机会正确绘制。 有没有办法自动限制这种情况,或者您建议进行哪些代码调整以手动进行限制?

我的收藏更改事件中的一小段代码:

void dataItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
NotifyPropertyChanged("dataItems");
NotifyPropertyChanged("lastItem");

// update any charts
NotifyPropertyChanged("AccelXData");
NotifyPropertyChanged("AccelYData");
NotifyPropertyChanged("AccelZData");
}

// handle property changes
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
var handler = this.PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}

作为一个想法,每个数据集还有一个 ID,可用于检查何时手动更新。

最佳答案

更好的方法是在数据更改时删除对 NotifyPropertyChanged 的​​调用。

创建一个计时器并在计时器上刷新。这样您就可以控制刷新率,并且不受数据到达速率的限制。

关于c# - 限制每秒绑定(bind)更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621372/

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