1

我正在使用自定义 wpf 控件,该控件的值将根据数据库中的通道值更新每 20 毫秒更改一次。但是我想控制这个用户控件中的速度值更新,以便用户可以轻松理解(这意味着〜500ms),在这种情况下我们有没有除了线程之外的任何解决方案。

4

1 回答 1

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");
         }
    }
}
于 2013-06-03T04:24:15.220 回答