標籤:
命名空間: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 類為Managed 程式碼內與計時有關的效能計數器的操作提供協助。具體說來,Frequency 欄位和 GetTimestamp 方法可以用於替換非託管 Win32 API QueryPerformanceFrequency 和 QueryPerformanceCounter。
注意 |
在多處理器電腦上,線程在哪個處理器上運行無關緊要。但是,由於 BIOS 或硬體抽象層 (HAL) 中的 bug,在不同的處理器上可能會得出不同的計時結果。若要為線程指定處理器關聯,請使用 ProcessThread.ProcessorAffinity 方法。 |
C#_Stopwatch 類