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 に答える