StopWatch与计时器 - 何时使用

时间:2015-07-08 12:44:58

标签: c# time timer intervals stopwatch

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

此外,我正面临着这种困境:

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

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

Youtube (2015) video player control bar

我们实际上可以看到时间以与速度因子一致的方式更新(例如,如果选择速度的两倍,下面的计时器会比正常情况快两倍更新),并且您可以更改此速度速率随时随地。

enter image description here

这就是我所追求的。 Youtube视频如何衡量经过的时间以及它们可以改变时间间隔的事实。那么,你认为我应该选择哪两个?定时器还是秒表?

顺便说一句,我只是编写Windows表单应用程序。我正在模拟某些东西,我希望用户能够在他或她希望的时候加速。虽然这很简单,但我希望采用适当的方法。

2 个答案:

答案 0 :(得分:17)

据我所知,主要区别是:

<强>定时器

  1. Timer只是一个简单的调度程序,偶尔运行一些操作/方法
  2. 它在单独的线程中执行方法。这可以防止阻塞主线程
  3. 当我们需要在某个时间间隔内执行某些任务而不阻塞任何内容时,定时器是好的。

    <强>秒表

    1. 默认情况下,秒表在同一个线程上运行
    2. 计算时间并返回TimeSpan结构,以便在我们需要其他信息时有用
    3. 当我们需要观察时间并获得有关该方法采用的处理器滴答时间的其他信息等时,秒表是好的。

答案 1 :(得分:1)

这已经包含在其他一些问题中,包括 here。基本上,你可以使用具有速度因子的秒表,然后结果是你经过的时间&#34;。更复杂的方法是实现Timer and changing the Interval property