C#如何暂停计时器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (999)

我有一个C#程序,如果用户停止与程序交互,我需要停止计时器。它需要做的是暂停,然后在用户再次激活时重新启动。我做了一些研究,发现有以下命令:

timer.Stop(); 

timer.Start();

但我想知道是否有这样的:

timer.Pause();

然后当用户再次变为活动状态时,它会从中断处继续,并且不会重新启动。

提问于
用户回答回答于

你可以通过使用Stopwatch.NET中的类来实现此目的。只需停止并启动即可继续使用秒表实例。

一定要好好利用 using System.Diagnostics;

var timer = new Stopwatch();
timer.Start();
timer.Stop();
Console.WriteLine(timer.Elapsed);

timer.Start(); //Continues the timer from the previously stopped time
timer.Stop();
Console.WriteLine(timer.Elapsed);

要重置秒表,只需调用ResetRestart方法,如下所示:

timer.Reset();
timer.Restart();
用户回答回答于

没有暂停因为很容易做同等的事情。你可以暂停计时器而不是暂停计时器,然后当你需要重新启动它时,只需指定剩余的时间量。它可能很复杂,也可能很简单; 这取决于你使用计时器做什么。那你所做的事情取决于使用计时器的原因可能是暂停不存在的原因。

你可能正在使用计时器在常规时间段内重复执行某些操作,或者可能正在使用计时器倒计时到特定时间。如果正在重复执行某些操作(例如每秒),那么你的要求可能是在该时间段的开始(一秒)或该时段的一部分重新启动。如果暂停超过时间段会发生什么?通常会忽略错过的事件,但这取决于要求。

扫码关注云+社区

领取腾讯云代金券