2011-04-26 106 views
11

我常想,什麼是計時器滴答,通過Stopwatch.ElapsedTicks

  • Stopwatch.ElapsedTicks等於
  • Stopwatch.Elapsed.Ticks使用的單位。

但事實並非如此。後者的數量爲100納秒,前者使用一個叫做timer ticks的神祕單位。我想知道這些是什麼,爲什麼它們與通常的計量單位不同?

回答

9

the docs

通過計數計時器的經過時間的秒錶措施蜱在底層計時器機制。如果安裝的硬件和操作系統支持高分辨率性能計數器,則秒錶類會使用該計數器來測量已用時間。否則,秒錶類會使用系統計時器來測量已用時間。使用FrequencyIsHighResolution字段來確定秒錶計時實施的精度和分辨率。

是的話,那就是「蜱」痛過載是指兩個不同的東西:(

我認爲這主要是因爲Stopwatch是給性能計數器的一個非常「原始」的說法,它可以有不同的實現它所指由「滴答」。

+0

如何將'Stopwatch'刻度轉換爲'TimeSpan'刻度,或者是否應該從不同的字段獲取?我確實需要它是確切的。 – Shimmy 2016-02-09 03:25:45

+1

@Shimmy:那麼你可以使用'Elapsed'屬性... – 2016-02-09 07:01:18

+0

這就是我最終做的。非常感謝。 – Shimmy 2016-02-09 18:04:39

0

也許它有助於看到控制檯輸出...

鏈表500插入/刪除操作ElapsedTicks:45871
鏈表500插入/刪除操作Elapsed.ticks:141266
鏈表500插入/刪除操作以毫秒爲單位: 14.1266
列表500插入/刪除操作ElapsedTicks:1235121
列表500插入/刪除操作Elapsed.ticks:3803744
列表500插入/刪除操作以毫秒爲單位:380.3744

(從中可以確認Elapsed.Ticks的測量精度爲100納秒)

相關問題