※ 引述《cole945 (躂躂..)》之銘言:
: GetTickCount() 沒有到 1/1000 秒 @.@"
: 在我的 Windows XP Pro/P4 上執行下面程式只會印出 15和16,
: 所以 GetTickCount 應該只會到 1/64 = 15.625 秒而已 @.@
: 這個好像是 OS 為了避免 因為不斷更新 timer 值對效能造成負面影響所致..
: 如果真的要很準, 用 Performance Counter (通常不會需要吧)
: while (true) {
: a = GetTickCount();
: if (a != b) {
: Console.WriteLine((a - b).ToString());
: b = a;
: }
: }
這點我倒真的沒注意過
剛想到另外還有一個簡易可以用來測比秒小的時間方式
for (int i = 0; i < 5; i++)
{
long t1 = DateTime.Now.Ticks;
// sleep 1 ms
Thread.Sleep(1);
long t2 = DateTime.Now.Ticks;
Console.WriteLine("[Test - {0}] {1} - {2} = {3}", i, t2, t1, t2 - t1);
}
測試結果
[Test - 0] 633426811343196000 - 633426811343186000 = 10000
[Test - 1] 633426811343206000 - 633426811343196000 = 10000
[Test - 2] 633426811343216000 - 633426811343206000 = 10000
[Test - 3] 633426811343226000 - 633426811343216000 = 10000
[Test - 4] 633426811343236000 - 633426811343226000 = 10000
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.82.44