Время, прошедшее с момента последнего доступа к свойству
У меня есть свойство, которое получает и устанавливает список целых чисел, который я использую для построения диаграммы с использованием 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;
}
}