StopWatch与计时器 - 何时使用

问题描述 投票:11回答:2

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

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

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

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

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

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

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

c# time timer intervals stopwatch
2个回答
17
投票

据我所知,主要区别是:

小时

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

当我们需要在某个时间间隔内执行某些任务而不阻塞任何内容时,定时器是好的。

跑表

  1. 默认情况下,秒表在同一个线程上运行
  2. 它计算时间并返回TimeSpan结构,这在我们需要一些额外信息时非常有用

当我们需要观察时间并获得有关该方法花费多少经过的处理器滴答的其他信息时,秒表是好的。


1
投票

包括here在内的其他一些问题已经涵盖了这一点。基本上,你可以使用具有速度因子的秒表,然后结果就是你的“经过时间”。更复杂的方法是实现Timer and changing the Interval property

© www.soinside.com 2019 - 2024. All rights reserved.