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();
    }
}
本站公众号
   欢迎关注本站公众号,获取更多信息