我在C#控制台应用程序中创建计时器的问题不仅显示了经过的时间,还返回了该时间的值。我需要它来计算移动传感器的速度,我得到的帧并转换成它行进的真实距离。不幸的是,我无法使用System.Threading中的计时器,因为它返回void。
是否有可能做这样的事情,或者我应该使用秒表来获取传感器的每个答案之间的时间值,然后将时间值作为当前间隔的总和返回?
答案 0 :(得分:0)
使用秒表。定时器设计用于间隔触发事件。另一个问题是,每个间隔的分配任务的持续时间可能超过间隔本身,这将导致定时器间隔在连续呼叫之间变化。
秒表将提供一个相对较高分辨率的计时器,可用于在需要时测量经过的时间,其准确度远高于计时器。
您可以使用秒表计算速度,代码类似于:
Stopwatch watch = new Stopwatch();
watch.Start();
// your code here
double distanceInMeters = GetDistanceFromSensor();
double velocity = distanceInMeters / (watch.ElapsedMilliseconds / 1000.0);