[問題] 計時不準確

作者: siate (yee)   2017-06-06 13:34:31
我想要對一個迴圈計時
使用stopwatch,流程大致如下
Stopwatch sw = new Stopwatch();
sw.Reset();
sw.Start();
do{
...
}while(...)
sw.Stop();
textBox.Text = sw.Elapsed.TotalMilliseconds.ToString();
每次計時出來的數值都會漂來漂去
像是11.8967,12.3895,11.8128,10.7043,12.2839 (毫秒)
雖然數字區間大致上就落在10~12ms
但能讓他精確到個位數嗎? 像是每次都11.多
或是有其他更準確的計時方法?
作者: YahooTaiwan (超可愛南西我老婆)   2017-06-06 13:35:00
本來就會有誤差
作者: ssccg (23)   2017-06-06 13:52:00
每次執行時間本來就不一定一樣吧? 還沒到準不準確的問題
作者: anumis (阿努米斯)   2017-06-06 16:11:00
SpinWait.SpinUntil 可以暫停到個位數的微秒誤差小於5ms我看錯了,別理我 O.Q
作者: Litfal (Litfal)   2017-06-06 16:33:00
這是計算工作時間吧,本來就不會每次都一樣,又不是單晶片
作者: zel (柚植)   2017-06-06 19:08:00
丟進個指定核心的執行序跑,google microsecond timer有教學但還是沒辦法精準觸發事件
作者: erspicu (.)   2017-06-07 10:04:00
cpu的時脈也是飄來飄去阿
作者: commandoEX (卡曼都)   2017-06-07 17:07:00
把時間四捨五入到整數再輸出就好了
作者: m339606 (mize)   2017-06-07 18:08:00
給你結論。無解
作者: largesperm (reindeer)   2017-06-07 18:17:00
windows 非 rtos
作者: AWEN221 (Larry)   2017-06-09 10:04:00
textBox.Text = "11.多";好啦 不開玩笑 就像同一個人每次跑百米時間也不會一樣啦

Links booklink

Contact Us: admin [ a t ] ucptt.com