Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中从计时器中获取实际值#_C#_Timer_Console Application - Fatal编程技术网

C# 如何在C语言中从计时器中获取实际值#

C# 如何在C语言中从计时器中获取实际值#,c#,timer,console-application,C#,Timer,Console Application,在C#控制台应用程序中创建计时器时,我遇到了一个问题,它不仅显示所经过的时间,而且还返回该时间的值。我需要它来计算移动传感器的速度,我得到的帧并转换成它移动的实际距离。不幸的是,我不能用System.Threading中的timer实现这一点,因为它返回void 是否有可能这样做,或者我应该使用秒表获取传感器每次应答之间的时间值,然后将时间值作为当前间隔的总和返回?使用秒表。定时器设计用于每隔一段时间触发事件。另一个问题是,每个间隔分配的任务的持续时间可能超过间隔本身,这将导致计时器间隔在连续调

在C#控制台应用程序中创建计时器时,我遇到了一个问题,它不仅显示所经过的时间,而且还返回该时间的值。我需要它来计算移动传感器的速度,我得到的帧并转换成它移动的实际距离。不幸的是,我不能用System.Threading中的timer实现这一点,因为它返回void


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

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

秒表将提供一个相对高分辨率的计时器,可以用来测量经过的时间,只要你需要它,与更高的精度比计时器

您可以使用秒表计算速度,代码如下:

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

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

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