我正在使用自定义wpf控件,并且此控件的值将根据数据库中的通道值更新每20毫秒更改一次。但是我想在这个用户控件中控制速度值更新,以便用户可以轻松理解(这意味着~500ms),在这种情况下我们是否有除线程之外的任何解决方案。
答案 0 :(得分:2)
在控件和快速变化的数据源之间创建一个缓冲区。
您可以通过创建一个具有属性的类来创建缓冲区,该属性将跟踪其属性的上次更新的时间,并且仅当它超过500毫秒之前将更新属性。
private int _stockRate;
private long _lastUpdate = 0;
public int StockRate
{
get { return _stockRate; }
set
{
long now = getTimeInMilliseconds(); // Stopwatch or other timer
if(now - _lastUpdate > 500ms)
{
_stockRate = value;
_lastUpdate = now;
OnPropertyChanged("StockRate");
}
}
}