我有一个属性,该属性获取并设置一个整数列表,我使用它使用LiveCharts绘制图表。
这些值是从外部硬件设备传递的。有时,由于硬件问题,这些值可能不可用,在此期间没有任何值传递给我的应用程序,因此该属性没有被触发。我仍然想绘制值,但是为NaN
。
如何检测是否在我的代码中未访问/设置某个属性(例如10毫秒)?
最佳答案
您可以将DateTime.Now分配给属性 setter 中的另一个实例变量。然后,如果该值的使用时间超过10ms,则可以在getter中返回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;
}
}
关于c# - 自上次访问属性以来耗时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50533864/