System.Diagnostics.Stopwatch

System.Diagnostics.Stopwatch

注意:此類在 .NET Framework 2.0 版中是新增的。MSDN性能

 

Stopwatch 實例能夠測量一個時間間隔的運行時間,也能夠測量多個時間間隔的總運行時間。在典型的 Stopwatch 方案中,先調用 Start 方法,而後調用 Stop 方法,最後使用 Elapsed 屬性檢查運行時間。spa

Stopwatch 實例或者在運行,或者已中止;使用 IsRunning 能夠肯定 Stopwatch 的當前狀態。使用 Start 能夠開始測量運行時間;使用 Stop 能夠中止測量運行時間。經過屬性 ElapsedElapsedMilliseconds 或ElapsedTicks 查詢運行時間值。當實例正在運行或已中止時,能夠查詢運行時間屬性。運行時間屬性在 Stopwatch 運行期間穩固遞增;在該實例中止時保持不變。操作系統

默認狀況下,Stopwatch 實例的運行時間值至關於全部測量的時間間隔的總和。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。使用 Reset 方法能夠清除現有 Stopwatch 實例中的累計運行時間。pwa

Stopwatch 在基礎計時器機制中對計時器的刻度進行計數,從而測量運行時間。若是安裝的硬件和操做系統支持高分辨率性能的計數器,則 Stopwatch 類將使用該計數器來測量運行時間;不然,Stopwatch 類將使用系統計數器來測量運行時間。使用 Frequency 和 IsHighResolution 字段能夠肯定實現 Stopwatch 計時的精度和分辨率。code

Stopwatch 類爲託管代碼內與計時有關的性能計數器的操做提供幫助。具體說來,Frequency 字段和 GetTimestamp 方法能夠用於替換非託管 Win32 API QueryPerformanceFrequency 和QueryPerformanceCounterorm

using System;

namespace System.Diagnostics
{
    // 摘要:
    //     提供一組方法和屬性,可用於準確地測量運行時間。
    public class Stopwatch
    {
        // 摘要:
        //     獲取以每秒計時週期數表示的計時器頻率。此字段爲只讀。
        public static readonly long Frequency;
        //
        // 摘要:
        //     指示計時器是否基於高分辨率性能計數器。此字段爲只讀。
        public static readonly bool IsHighResolution;

        // 摘要:
        //     初始化 System.Diagnostics.Stopwatch 類的新實例。
        public Stopwatch();

        // 摘要:
        //     獲取當前實例測量得出的總運行時間。
        //
        // 返回結果:
        //     一個只讀的 System.TimeSpan,用於表示當前實例測量得出的總運行時間。
        public TimeSpan Elapsed { get; }
        //
        // 摘要:
        //     獲取當前實例測量得出的總運行時間(以毫秒爲單位)。
        //
        // 返回結果:
        //     一個只讀長整型,表示當前實例測量得出的總毫秒數。
        public long ElapsedMilliseconds { get; }
        //
        // 摘要:
        //     獲取當前實例測量得出的總運行時間(用計時器計時週期表示)。
        //
        // 返回結果:
        //     一個只讀長整型,表示當前實例測量得出的計時器計時週期的總數。
        public long ElapsedTicks { get; }
        //
        // 摘要:
        //     獲取一個指示 System.Diagnostics.Stopwatch 計時器是否在運行的值。
        //
        // 返回結果:
        //     若是 System.Diagnostics.Stopwatch 實例當前正在運行,而且在對某個時間間隔的運行時間進行測量,則該值爲 true;不然爲
        //     false。
        public bool IsRunning { get; }

        // 摘要:
        //     獲取計時器機制中的當前最小時間單位數。
        //
        // 返回結果:
        //     一個長整型,表示基礎計時器機制中的計時週期計數器值。
        public static long GetTimestamp();
        //
        // 摘要:
        //     中止時間間隔測量,並將運行時間重置爲零。
        public void Reset();
        //
        // 摘要:
        //     中止時間間隔測量,將運行時間重置爲零,而後開始測量運行時間。
        public void Restart();
        //
        // 摘要:
        //     開始或繼續測量某個時間間隔的運行時間。
        public void Start();
        //
        // 摘要:
        //     對新的 System.Diagnostics.Stopwatch 實例進行初始化,將運行時間屬性設置爲零,而後開始測量運行時間。
        //
        // 返回結果:
        //     剛剛開始測量運行時間的 System.Diagnostics.Stopwatch。
        public static Stopwatch StartNew();
        //
        // 摘要:
        //     中止測量某個時間間隔的運行時間。
        public void Stop();
    }
}
本站公眾號
   歡迎關注本站公眾號,獲取更多信息