我有一个属性,该属性获取并设置一个整数列表,我使用它使用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/

10-12 04:25
查看更多