2014-10-05 183 views
-1

我在C#控制檯應用程序中創建計時器時遇到問題,它不僅顯示經過的時間,而且還返回當時的值。我需要它來計算移動傳感器的速度,我得到了哪個幀,並將其轉換爲它行進的實際距離。不幸的是我不能用System.Threading中的定時器來做這件事,因爲它返回void。如何從C#中的計時器獲取實際值

是否有可能做這樣的事情,或者我應該使用秒錶來獲得每個傳感器的答案之間的時間值,然後返回當前時間間隔的時間值?

回答

0

使用秒錶。計時器用於間隔觸發事件。另一個問題是,在每個時間間隔內分配任務的持續時間可能超過間隔本身,這將導致連續調用之間的計時器間隔發生變化。

秒錶將提供一個相對高分辨率的計時器,可用於在需要時測量已用時間,其精度比計時器高得多。

可以使用的代碼與此類似秒錶計算速度:

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

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

double velocity = distanceInMeters/(watch.ElapsedMilliseconds/1000.0); 
相關問題