關於C timer 時間精確度的問題

2021-07-09 05:05:36 字數 1436 閱讀 5712

**:

我想用精確的時間計算,需要精確到毫秒級別,**執行後發下有誤差。請教高人怎麼實現。

c# code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

staticsystem.diagnostics.stopwatch stw =newsystem.diagnostics.stopwatch();

staticinttestnum = 0;

stw.start();

while(true)

次,用時秒。\r\n", testnum, stw.elapsed.totalseconds));

}

while((stw.elapsed - starttime).totalmilliseconds <= 10)

testnum++;

}

結果如圖:

要精確到毫秒,可以用stopwatch類,或者用gettickcount api

前者msdn自己查,後者參考

windows系統定時器精度預設是15.625ms,所以一般的辦法不行。想要到10ms或者更高的精度需要通過api調整系統定時器到1ms精度,然後使用socket.poll來等待,這是能找到的最精確的方式,但是因為作業系統本身非實時,最後真正要每隔10ms執行任務估計很困難。所以最好先想想需求的必要性,再嘗試實現。

windows不是「實時作業系統」,定時器誤差在50毫秒都是正常的。

如果這麼幹了,電腦上別的大量應用程式的效能會大大降低。windows上跑的是大量複雜的應用,同一時間有上千個執行緒進行搶先多任務排程,作業系統也很複雜。它不是只有幾個非常簡單的程序,它不能過分地修改定時器精度。

vue 封裝時間格式化和number精確度

format.js 公用js parse the time to string param time param format returns 時間格式化 export function formatdate time,format break case hh mm ss result break ...

sqlserver 全文檢索提高精確度的乙個方法

乙個專案使用了全文檢索,速度好快,就是不准,有的詞檢索不到,也知道這玩意兒是按詞來檢索的,不是like 比如 檢索數字1 9,乙個也檢索不到,實際有太多條目了 開始用的是簡體中文 simpli fied chinese 後來試著換了一下斷字元語言,換成了新加坡的 chinese singapore ...

Datetime的精確度為什麼是3 33毫秒?

datetime的精確度為什麼是3.33毫秒?注意 本問題目前還沒有確切答案。我看到這個問題的第乙個答案就是 空間不夠唄,所以只能精確到3.33毫秒。是這樣的嗎?假如精確到1毫秒,則一天的毫秒數為 24 60 60 1000 86400000,而四個位元組最大的數為2 32 42 9496 7296...