VB TIMER控制元件 為什么不精確啊,感覺差很多,有沒有精確的TIMER控制元件啊
uj5u.com熱心網友回復:
因為windows的定時精度最小就是55ms,要更高精度,需要用GetTickCounthttps://blog.csdn.net/linjcai/article/details/81206143
uj5u.com熱心網友回復:
你所謂的精確要是什么?timer只是兩次timer事件的間隔時間你基本可控,但timer里面花的時間不管。這樣,如果你認為你設定了timer時間就萬事大吉了,那么timer事件處理時間的累積誤差會越來越大。
舉個例子,你的timer每10秒觸發一次,觸發360次,肯定超過一個小時。
如果你要代碼盡量少地保持一個恰當的精度,要自己去檢測系統時間。
還是剛才那個例子,你要定時一個小時。那么你可以先根據當前系統時間確定好目標觸發時間,并把這個目標時間寫入模塊變數或者靜態變數。timer可以定義為每1秒觸發一次,每次timer事件檢查系統時間是否達到目標時間,如果沒達到就退出,達到就繼續你的業務邏輯。這樣,一個小時候觸發,誤差一秒以內。如果你設定為500毫秒觸發一次,那么誤差就降到半秒左右。只不過你越不過55毫秒這個坎,實際上能100毫秒左右誤差已經差不多是極限了。
uj5u.com熱心網友回復:
timer方法可以uj5u.com熱心網友回復:
精確什么級別轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/23425.html
標籤:控件
上一篇:如何看懂cwnd擁塞視窗圖
