我有一个属性来获取和设置整数列表,我用它来使用LiveCharts绘制图表。
这些值是从外部硬件设备传递的。有时,由于硬件问题,这些值可能不可用,在此期间没有值传递到我的应用,因此不会触发属性。我仍然想绘制值,但作为NaN
.
如何检测是否未在我的代码中访问/设置属性,例如 10 毫秒?
您可以将 DateTime.Now 分配给属性的 setter 中的另一个实例变量。然后在 getter 中,如果该值超过 10 毫秒,您可以返回 NaN。如下所示。
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;
}
}
好的,我正在寻找的东西是一个计时器。ElapsedEventHandler 服务于我一直在寻找的目的。