【发布时间】:2019-12-08 00:46:28
【问题描述】:
我只想在 UWP 中显示当前时间最多分钟。时间需要与系统时间同步,这样系统时间和App时间才能显示精确到分钟的时间。
我为此使用计时器。初始间隔基于当前时间。
private const string TIME_FORMAT = "hh:mm";
private static int TIMER_INTERVAL_ONE_MINUTE = 60 * 1000;
private static Timer countdownTimer;
private static DateTime liveDateTime = DateTime.Now;
private static bool isTimerRunning = false;
static ViewModel()
{
countdownTimer = new Timer();
countdownTimer.Elapsed += CountdownTimer_Elapsed;
countdownTimer.Interval = TIMER_INTERVAL_ONE_MINUTE - DateTime.Now.Second;
countdownTimer.Start();
isTimerRunning = true;
}
private static void CountdownTimer_Elapsed(object sender, ElapsedEventArgs e)
{
ApplicationDispatcher.RunOnUIThread(() =>
{
liveDateTime = DateTime.Now;
countdownTimer.Interval = TIMER_INTERVAL_ONE_MINUTE;
});
}
但有时我的 UI 与 System 不同步,因为语句也需要一些时间来执行,哪些情况最初设置不正确,只有一小部分。 我不想太频繁地运行我的计时器。
如何通过同步系统时间显示最长达分钟的时间。
问候
【问题讨论】: