-1
我在C#控制檯應用程序中創建計時器時遇到問題,它不僅顯示經過的時間,而且還返回當時的值。我需要它來計算移動傳感器的速度,我得到了哪個幀,並將其轉換爲它行進的實際距離。不幸的是我不能用System.Threading中的定時器來做這件事,因爲它返回void。如何從C#中的計時器獲取實際值
是否有可能做這樣的事情,或者我應該使用秒錶來獲得每個傳感器的答案之間的時間值,然後返回當前時間間隔的時間值?
我在C#控制檯應用程序中創建計時器時遇到問題,它不僅顯示經過的時間,而且還返回當時的值。我需要它來計算移動傳感器的速度,我得到了哪個幀,並將其轉換爲它行進的實際距離。不幸的是我不能用System.Threading中的定時器來做這件事,因爲它返回void。如何從C#中的計時器獲取實際值
是否有可能做這樣的事情,或者我應該使用秒錶來獲得每個傳感器的答案之間的時間值,然後返回當前時間間隔的時間值?
使用秒錶。計時器用於間隔觸發事件。另一個問題是,在每個時間間隔內分配任務的持續時間可能超過間隔本身,這將導致連續調用之間的計時器間隔發生變化。
秒錶將提供一個相對高分辨率的計時器,可用於在需要時測量已用時間,其精度比計時器高得多。
可以使用的代碼與此類似秒錶計算速度:
Stopwatch watch = new Stopwatch();
watch.Start();
// your code here
double distanceInMeters = GetDistanceFromSensor();
double velocity = distanceInMeters/(watch.ElapsedMilliseconds/1000.0);