C#的Stopwatch 类使用说明

发布于:2022-12-26 ⋅ 阅读:(440) ⋅ 点赞:(0)

一:Stopwatch 类简单说明

   实例Stopwatch 可以测量一个时间间隔的运行时间,或跨多个间隔的已用时间总数。 在典型方案中,调用Start()方法,最后调用Stop()方法,然后使用属性 Elapsed 检查运行时间 。
  Stopwatch实例正在运行或已停止;使用 IsRunning 来确定当前的状态 。 使用 Start 开始测量运行时间;使用Stop 测量停止运行。 最后通过查询属性 Elapsed 运行时间 ElapsedMilliseconds 或者 ElapsedTicks的值 。 默认情况下,实例的运行时间值 Stopwatch 等于所有测量时间间隔的总数。 对每次调用都从累积运行时间开始计数;每次调用,结束当前间隔度量,并冻结 Start Stop 累积运行时间值。 而使用 Reset 方法清除现有实例中的累计运行时间 Stopwatch 。通过 Stopwatch 计算基础计时器机制中的计时器计时周期来度量已用时间。 如果已安装的硬件和操作系统支持高分辨率性能计数器,则Stopwatch类使用该计数器测量运行时间。 否则, Stopwatch 类使用系统计时器来测量运行时间。 使用 Frequency 和 IsHighResolution 字段确定计时实现精度和分辨率

二:Stopwatch 类的字段和属性

字段 字段说明
Frequency 获取以每秒刻度数表示的计时器频率。 此字段为只读。
IsHighResolution 指示计时器是否基于高分辨率性能计数器。 此字段为只读。
属性 属性说明
Elapsed 获取当前实例测量得出的总运行时间。
ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为单位)。
ElapsedTicks 获取当前实例测量得出的总运行时间(用计时器刻度表示)。
IsRunning 获取一个值,该值表示 Stopwatch 计时器是否正在运行。

三:Stopwatch 类的方法

方法 方法说明
Equals(Object) 确定指定对象是否等于当前对象。
GetHashCode() 作为默认哈希函数。
GetTimestamp() 获取计时器机制中的当前刻度数。
GetType() 获取当前实例的 Type。
MemberwiseClone() 创建当前 Object 的浅表副本。
Reset() 停止时间间隔测量,并将运行时间重置为零。
Restart() 停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
Start() 开始或继续测量某个时间间隔的运行时间。
StartNew() 初始化新的 Stopwatch 实例,将运行时间属性设置为零,然后开始测量运行时间。
Stop() 停止测量某个时间间隔的运行时间。
ToString() 返回表示当前对象的字符串。

1: Stopwatch 类的使用举例一

Stopwatch stopWatch = new Stopwatch();

stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();

// 获取TimeSpan值形式的运行时间。
TimeSpan ts = stopWatch.Elapsed; 
// 格式化并显示TimeSpan值.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
    ts.Hours, ts.Minutes, ts.Seconds,
    ts.Milliseconds / 10);
Console.WriteLine("RunTime " + elapsedTime);

运行结果:

RunTime 00:00:09.99

2: Stopwatch 类的使用举例二

if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("使用系统的高分辨率性能计数器的计时的操作.");
}
else
{
    Console.WriteLine("使用DateTime类的计时操作.");
}

long frequency = Stopwatch.Frequency;
Console.WriteLine("计时器频率,以滴答/秒为单位 = {0}",frequency);

long nanosecPerTick = (1000L * 1000L * 1000L) / frequency;
Console.WriteLine("计时器在{0}纳秒以下范围内准确",nanosecPerTick.ToString());

运行结果:

使用系统的高分辨率性能计数器的计时的操作.
计时器频率,以滴答/秒为单位 = 2343828
计时器在426纳秒以下范围内准确
本文含有隐藏内容,请 开通VIP 后查看