秒表与计时器 - 何时使用

StopWatch vs Timer - When to Use

请原谅我提出这个问题,但我似乎无法找到何时使用哪个的良好来源。如果您能用简单的术语解释它,将很高兴。

此外,我面临这样的困境:

看,我正在编写一个简单的应用程序。我希望它显示经过的时间(hh:mm:ss 格式或其他格式)。而且,能够 "speed up" 或 "slow down" 它的时间间隔(即加快速度,以便实时的一分钟等于应用程序中的一小时)。

例如,在 Youtube 视频中(* 不考虑我们可以跳转到视频的特定部分 *),我们会看到实际花费的观看时间屏幕左下角的视频,但通过在选项菜单中导航,我们可以加快或降低视频速度。

我们实际上可以看到时间以与速度因子一致的方式更新(例如,如果您选择两倍的速度,下面的计时器更新速度比正常快两倍),您可以更改它速度随心所欲。

这就是我想要的。类似于 Youtube 视频如何测量经过的时间以及它们可以更改时间间隔的事实。那么,您认为我应该选择两者中的哪一个?计时器还是秒表?

顺便说一下,我正在编写一个 Windows 表单应用程序。我正在模拟一些东西,我希望用户能够在他或她希望的任何时候加速。尽管这可能很简单,但我希望实施一个适当的方法。

这已经包含在许多其他问题中,包括 here. Basically, you can either have Stopwatch with a Speed factor then the result is your "elapsed time". A more complicated approach is to implement Timer and changing the Interval property.

据我所知,主要区别是:

定时器

  1. Timer 只是一个简单的调度程序,偶尔运行一些 operation/method
  2. 它在单独的线程中执行方法。这可以防止阻塞主线程

当我们需要在一定的时间间隔内执行某些任务而不会阻塞任何东西时,定时器非常有用。

秒表

  1. 秒表默认在同一个线程上运行
  2. 它计算时间和 returns TimeSpan 结构,在我们需要一些额外信息时很有用

当我们需要看时间并获取一些额外的信息时,秒表非常有用