fix:issue #160
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using Ink_Canvas.Helpers;
|
using Ink_Canvas.Helpers;
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
@@ -141,6 +141,7 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
// NTP同步失败时,保持使用本地时间
|
// NTP同步失败时,保持使用本地时间
|
||||||
cachedNetworkTime = DateTime.Now;
|
cachedNetworkTime = DateTime.Now;
|
||||||
|
lastNtpSyncTime = DateTime.Now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,16 +165,18 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
// 网络时间获取失败时,使用本地时间
|
// 网络时间获取失败时,使用本地时间
|
||||||
cachedNetworkTime = localTime;
|
cachedNetworkTime = localTime;
|
||||||
|
lastNtpSyncTime = DateTime.Now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用缓存的网络时间进行显示
|
// 使用缓存的网络时间进行显示
|
||||||
TimeSpan timeDifference = cachedNetworkTime - localTime;
|
DateTime dynamicNetworkTime = cachedNetworkTime + (localTime - lastNtpSyncTime);
|
||||||
|
TimeSpan timeDifference = dynamicNetworkTime - localTime;
|
||||||
double timeDifferenceMinutes = Math.Abs(timeDifference.TotalMinutes);
|
double timeDifferenceMinutes = Math.Abs(timeDifference.TotalMinutes);
|
||||||
|
|
||||||
// 如果网络时间与本地时间相差不超过3分钟,则使用本地时间
|
// 如果网络时间与本地时间相差不超过3分钟,则使用本地时间
|
||||||
// 否则使用网络时间
|
// 否则使用动态网络时间
|
||||||
displayTime = timeDifferenceMinutes <= 3.0 ? localTime : cachedNetworkTime;
|
displayTime = timeDifferenceMinutes <= 3.0 ? localTime : dynamicNetworkTime;
|
||||||
|
|
||||||
// 只更新时间,日期由原有逻辑定时更新即可
|
// 只更新时间,日期由原有逻辑定时更新即可
|
||||||
Dispatcher.Invoke(() =>
|
Dispatcher.Invoke(() =>
|
||||||
@@ -748,4 +751,4 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user