【问题标题】:Time elapsed since a property was last accessed自上次访问属性以来经过的时间
【发布时间】:2018-11-05 03:05:14
【问题描述】:

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

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

如何检测我的代码中是否没有访问/设置某个属性,比如 10 毫秒?

【问题讨论】:

    标签: c# wpf mvvm properties livecharts


    【解决方案1】:

    您可以将 DateTime.Now 分配给属性设置器中的另一个实例变量。然后在 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;
                }
            }
    

    【讨论】:

    • 但是问题仍然是当没有人从外面访问它时如何启动它?
    【解决方案2】:

    好吧,我正在寻找的是 Timer 。 ElapsedEventHandler 达到了我正在寻找的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多