作者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/cn.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