合肥平面设计公司,厦门seo网络优化公司,北京做网站公司 seo,wordpress更改主题作者小编在编写WPF程序时#xff0c;需要做一个判断#xff1a;定时使用Modbus协议使用Quartz.net 定时任务读取设备中的数据#xff0c;同时也使用定时任务判断是否长时间获取不到数据的情况#xff0c;如果程序中超过一分钟没有获取到数据#xff08;数据没有更新#xff0… 小编在编写WPF程序时需要做一个判断定时使用Modbus协议使用Quartz.net 定时任务读取设备中的数据同时也使用定时任务判断是否长时间获取不到数据的情况如果程序中超过一分钟没有获取到数据数据没有更新则认为已经掉线。因此在类中使用了 DateTime类型数据记录获取数据的时间。判断是否在线使用了当前时间减去获取数据的时间类似于这样RunningTime DateTime.MinValue;
var x DateTime.Now - RunningTime;
var y x.Minutes1?连接断开:连接正常;
上述 x的类型为 TimeSpan。那么问题就从这里埋下了。问题再现出现问题的时间点在不连接设备时保持程序在运行状态整点时间时出现的时候就会出现连接正常的状态通过日志进行分析发现整点时分钟为0与时间最小值做完运算后得到的 x.Minutes的值就为 0因此出现连接正常的情况。解决方法通过TimeSpan的文档发现 TimeSpan中的属性如下属性解释Days获取当前 TimeSpan 结构所表示的时间间隔的天数部分。Hours获取当前 TimeSpan 结构所表示的时间间隔的小时数部分。Milliseconds获取当前 TimeSpan 结构所表示的时间间隔的毫秒数部分。Minutes获取当前 TimeSpan 结构所表示的时间间隔的分钟数部分。Seconds获取当前 TimeSpan 结构所表示的时间间隔的秒数部分。Ticks获取表示当前 TimeSpan 结构的值的刻度数。TotalDays获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。TotalHours获取以整小时数和小时的小数部分表示的当前 TimeSpan 结构的值。TotalMilliseconds获取以整毫秒数和毫秒的小数部分表示的当前 TimeSpan 结构的值。TotalMinutes获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。TotalSeconds获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值。通过 TimeSpan的属性发现按分钟比较需要使用 TotalMinutes属性才可以。说明在通过时间运算方法使用 TimeSpan作比较时要特别注意。还有有事没事要多看相关文档才可以。