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

标签 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 并向控制台写入一条消息。但是当我在 Debug模式下运行时,它永远不会到达那里,更让我困惑的是秒表耗时上升到 60,然后重置。有谁知道为什么会发生这种情况?

最佳答案

TimeSpan 结构的Seconds 属性获取时间间隔的秒数部分。类型是一个 int 并且这个值的范围是从 -59 到 59。如果你有一个 59 秒的 TimeSpan 并且你添加了一秒然后 Seconds 属性将变为 0.Minutes 属性将变为 1

如果您想要用 TimeSpan 表示的总秒数,那么您需要 TotalSeconds(这是一个 double,因为它也表示已经过去的小数秒。

关于c# - 计时器内的秒表在 C# 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500039/

相关文章:

c# - 在 C# 中,如何构造和解析嵌套的查询字符串?

c# - 尝试/最终阻止与调用处置?

c# - 在将发送到电子邮件的 html 中添加 css

c# - 我们可以为 asp.net .web 表单创建 pwa-app 吗?

c# - Paypal 中经常性付款的 IPN 与普通发票付款有任何不同的参数吗?

c# - WPF 标签到文本框

c# - 如何向 SKMap 添加标记?

c# - 仅在抛出异常时将堆栈跟踪写入日志文件

c# - 如何在 C# 中序列化和反序列化 geojson

c# - 需要使用 asp.net 在下拉列表中显示名称和图像