【问题标题】:Timer start time and end time calculation gives 4 secs extra计时器开始时间和结束时间计算额外提供 4 秒
【发布时间】:2014-03-25 10:40:13
【问题描述】:

我正在研究 WP8,我正在使用计时器来计算总时间。

这就是我的做法:

timer = new DispatcherTimer();
 timer.Interval = TimeSpan.FromSeconds(1);//interval for timer is 1 sec
 timer.Tick += new EventHandler(timer_Tick);//after the timer expires, this event is fired
 timer.Start();
 startDateTime = DateTime.Now;  

 DateTime et = DateTime.Now;

   Debug.WriteLine("st is "+startDateTime+ " et is "+et);

   TimeSpan myDateResult = et - startDateTime;
   double seconds = myDateResult.TotalSeconds;
   Debug.WriteLine("difference is " + seconds);

我得到的输出:

st is 3/25/2014 3:54:09 PM et is 3/25/2014 3:55:14 PM
difference is 64.312636

所以我完全跑了 1 分钟,然后它给了我 64 秒的输出。为什么这样?这是一个错误吗?

编辑

Here timerCount value is 60;

private void timer_Tick(object sender, EventArgs e)
        {                                            
            timerCount--;
            if (timerCount > 0)
            {
                TimerText.Text = "Timer : "+timerCount.ToString();
            }
            else
            {
                TimerText.Text = "Timer : ";

            }            
        }

【问题讨论】:

  • 请发布正确的代码,例如timer_Tick 实现在哪里?
  • 谢谢 - 这正是我所需要的 - 已添加答案

标签: c# silverlight timer windows-phone


【解决方案1】:

因此,您正在使用此计时器计算滴答声,并期望在 60 个 1 的滴答声之后,正好 1 分钟过去了。

它不是那样工作的。应用程序中正在发生其他事情,而 .NET 从不保证它会准确在滴答声之间准确一秒。

如果您想要准确,请使用System.Diagnostics.Stopwatch,它会根据系统时钟给出非常准确的经过时间。

【讨论】:

  • 你能给我一些例子或链接,告诉我如何使用它
  • wp8 是否支持秒表?
  • 看来是,通过此链接确认blogs.microsoft.co.il/alex_golesh/2012/11/05/…
  • 你能帮我用秒表实现开始时间、间隔和结束时间以及剩余时间计算(就像我在问题中显示的那样)吗?
  • 如果您希望以高精度(尤其是在 WP 上)提出事件,您将面临一场艰苦的斗争。详细解释见stackoverflow.com/questions/4212611/…——尤其是第二个答案
【解决方案2】:

您使用了错误的工具来计算时间。你应该StopWatch 而不是计时器。计时器用于做一些打算定期发生的事情。

【讨论】:

  • WP8 是否支持秒表
  • 在 silverlight 中确实如此,但不确定 WP8。
  • 你能帮我使用秒表实现开始时间、间隔和结束时间以及剩余时间计算(就像我在问题中显示的那样)吗?
  • 我已经发布了包含示例的链接。你为什么不遵守呢?
  • 是的,我已经检查过了,但我不知道如何计算剩余时间
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多