如何在C#中从timer获取实际值

时间:2014-10-05 13:49:16

标签: c# timer console-application

我在C#控制台应用程序中创建计时器的问题不仅显示了经过的时间,还返回了该时间的值。我需要它来计算移动传感器的速度,我得到的帧并转换成它行进的真实距离。不幸的是,我无法使用System.Threading中的计时器,因为它返回void。

是否有可能做这样的事情,或者我应该使用秒表来获取传感器的每个答案之间的时间值,然后将时间值作为当前间隔的总和返回?

1 个答案:

答案 0 :(得分:0)

使用秒表。定时器设计用于间隔触发事件。另一个问题是,每个间隔的分配任务的持续时间可能超过间隔本身,这将导致定时器间隔在连续呼叫之间变化。

秒表将提供一个相对较高分辨率的计时器,可用于在需要时测量经过的时间,其准确度远高于计时器。

您可以使用秒表计算速度,代码类似于:

Stopwatch watch = new Stopwatch();
watch.Start();

// your code here
double distanceInMeters = GetDistanceFromSensor();

double velocity = distanceInMeters / (watch.ElapsedMilliseconds / 1000.0);