Время, прошедшее с момента последнего доступа к свойству

У меня есть свойство, которое получает и устанавливает список целых чисел, который я использую для построения диаграммы с использованием LiveCharts.

Значения передаются с внешнего аппаратного устройства. Иногда значения могут быть недоступны из-за аппаратной проблемы, во время которой никакие значения не передаются моему приложению, и поэтому свойство не запускается. Я все еще хочу построить значения, но как NaN,

Как я могу определить, не было ли доступа или установки свойства в моем коде, скажем, в течение 10 миллисекунд?

2 ответа

Решение

Хорошо, я искал Таймер. ElapsedEventHandler служит цели, которую я искал.

Вы можете назначить DateTime.Now другой переменной экземпляра в установщике вашего свойства. И затем в геттере вы можете вернуть NaN, если это значение более 10 мс. Что-то вроде ниже.

        DateTime _lastUpdate;
        double _value;
        TimeSpan _maxInterval = new TimeSpan(0, 0, 0, 0, 10);
        public double Value
        {
            get
            {
                return (DateTime.Now - _lastUpdate) <=  _maxInterval ? _value : double.NaN;
            }
            set
            {
                _lastUpdate = DateTime.Now;
                _value = value;
            }
        }
Другие вопросы по тегам