作者siate ()
看板C_Sharp
標題[問題] 計時不準確
時間Tue Jun 6 13:34:31 2017
我想要對一個迴圈計時
使用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.多
或是有其他更準確的計時方法?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.92.185
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1496727274.A.B8F.html
1F:推 YahooTaiwan: 本來就會有誤差 06/06 13:35
2F:→ ssccg: 每次執行時間本來就不一定一樣吧? 還沒到準不準確的問題 06/06 13:52
3F:推 anumis: SpinWait.SpinUntil 可以暫停到個位數的微秒 06/06 16:11
4F:→ anumis: 誤差小於5ms 06/06 16:12
5F:→ anumis: 我看錯了,別理我 O.Q 06/06 16:12
6F:→ Litfal: 這是計算工作時間吧,本來就不會每次都一樣,又不是單晶片 06/06 16:33
7F:推 zel: 丟進個指定核心的執行序跑,google microsecond timer有教學 06/06 19:08
8F:→ zel: 但還是沒辦法精準觸發事件 06/06 19:09
9F:→ erspicu: cpu的時脈也是飄來飄去阿 06/07 10:04
10F:→ commandoEX: 把時間四捨五入到整數再輸出就好了 06/07 17:07
11F:推 m339606: 給你結論。無解 06/07 18:08
12F:推 largesperm: windows 非 rtos 06/07 18:17
13F:→ AWEN221: textBox.Text = "11.多"; 06/09 10:04
14F:→ AWEN221: 好啦 不開玩笑 就像同一個人每次跑百米時間也不會一樣啦 06/09 10:06