自上次访问 属性 以来经过的时间

Time elapsed since a property was last accessed

我有一个 属性 获取和设置一个整数列表,我用它来使用 LiveCharts 绘制图表。

正在从外部硬件设备传递这些值。有时由于硬件问题,值可能不可用,在此期间没有值被传递到我的应用程序,因此 属性 没有被触发。我仍然想绘制这些值,但是 NaN.

如何检测 属性 是否在我的代码中 accessed/set,比如说 10 毫秒?

您可以将 DateTime.Now 分配给 属性 的 setter 中的另一个实例变量。然后在 getter 中,如果该值超过 10 毫秒,则可以 return 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;
            }
        }

好的,我要找的是 Timer。 ElapsedEventHandler 满足了我一直在寻找的目的。