2008年10月8日 星期三

C# 提供的Timer不準啦!

今天將Timer的Interval設為1000以下的時候發現被觸發的間隔時間並不是那麼準
Interval 設為 1 的時候 15ms 或 16ms 才會觸發一次
Interval 設為31的時候 31ms 或 32ms 才會觸發一次
Interval 設為32的時候 32ms、46ms 或 48ms 才會觸發一次
Interval 設為33的時候 45~48ms 才會觸發一次
這結果還滿怪的,不過看得出來有些規律性,每次約以15ms或16ms遞增。
ps. 搭配Stopwatch去看

看來只能直接使用win32的API了,不過高興的是在CodeProject有人將它包起來了。

http://www.codeproject.com/KB/miscctrl/lescsmultimediatimer.aspx

沒有留言:

張貼留言