计时器内的秒表在C#中不起作用

时间:2019-02-03 04:46:02

标签: c#

我有此代码:

if (!App.stopWatch.IsRunning) { App.stopWatch.Start(); }
Device.StartTimer(new TimeSpan(0, 0, 1), () =>
{
   if (App.stopWatch.IsRunning && App.stopWatch.Elapsed.Seconds >= 60)
   {
      Console.WriteLine("Reducing Points");
      App.stopWatch.Restart();
   }
   return true;
});

我希望每60秒就会进入if并将消息写入控制台。但是,当我在“调试”模式下运行时,它永远不会到达那里,而令我更加困惑的是,秒表经过的时间上升到60,然后重置。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:5)

Seconds结构的TimeSpan属性获取时间间隔的秒部分。类型是int,其值的范围是-59到59。如果TimeSpan为59秒,并且对其添加了1秒钟,则Seconds属性将变成0,而.Minutes属性变成1

如果您希望用TimeSpan表示的总秒数,则需要TotalSeconds(这是double,因为它也表示已过去的小数秒数。