ΣSigma's Blog

關於部落格
  • 20780

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

碼表小程式

表我想是因為程式每隔10毫秒,就要去執行一些運算(顯示加0.01秒的時間之類),
執行完這些運算之後才再繼續算10毫秒。
假設每次執行那些運算所需的時間為1毫秒,每1秒鐘那些運算會被執行100次(1/0.01),
則會造成100毫秒(0.1秒)的延遲,當程式上面顯示10秒時,其實已經過了11秒了。

所以我的解決辦法是,記錄我按下"開始"鈕時的系統時間,
每當要更新碼錶的顯示時間時,就以「當時的系統時間」減去「開始的系統時間」。
使用此方法,則受電腦時間準確度影響,如果電腦時間越準,程式的結果就越準。


我寫了一個程式來測試兩種方法的差別,上面的時間為用系統時間相減(較準),
下面的時間為用timer每間隔10毫秒,時間加0.01(較不準)。可以看出兩者的差別。
有興趣的人可以下載回去試試看。


有興趣有人可以下載對照版回去試試是不是會有我說的現象




有需要用電腦來計時的人可以下載標準版回去試試
可以直接使用Enter或空白鍵來控制開始、暫停,用Esc鍵歸零
 

如果無法執行請先安裝
http://download.microsoft.com/download/8/2/7/827bb1ef-f5e1-4464-9788-40ef682930fd/dotnetfx.exe

相簿設定
標籤設定
相簿狀態