命名空間:System.Diagnostics
Stopwatch 實例可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。在典型的 Stopwatch 方案中,先調用 Start 方法,然後調用Stop 方法,最後使用 Elapsed 屬性檢查運行時間。
Stopwatch 實例或者在運行,或者已停止;使用 IsRunning 可以確定 Stopwatch 的當前狀態。使用 Start 可以開始測量運行時間;使用 Stop 可以停止測量運行時間。通過屬性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查詢運行時間值。當實例正在運行或已停止時,可以查詢運行時間屬性。運行時間屬性在 Stopwatch 運行期間穩固遞增;在該實例停止時保持不變。
默認情況下,Stopwatch 實例的運行時間值相當於所有測量的時間間隔的總和。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
Stopwatch 在基礎計時器機制中對計時器的刻度進行計數,從而測量運行時間。如果安裝的硬件和操作系統支持高分辨率性能的計數器,則 Stopwatch 類將使用該計數器來測量運行時間;否則,Stopwatch 類將使用系統計數器來測量運行時間。使用 Frequency 和 IsHighResolution 字段可以確定實現Stopwatch 計時的精度和分辨率。
Stopwatch 類為托管代碼內與計時有關的性能計數器的操作提供幫助。具體說來,Frequency 字段和 GetTimestamp 方法可以用於替換非托管 Win32 API QueryPerformanceFrequency 和 QueryPerformanceCounter。
在多處理器計算機上,線程在哪個處理器上運行無關緊要。但是,由於 BIOS 或硬件抽象層 (HAL) 中的 bug,在不同的處理器上可能會得出不同的計時結果。若要為線程指定處理器關聯,請使用 ProcessThread.ProcessorAffinity 方法。