一、Stopwatch的用处
Stopwatch来自于System.using System.Diagnostics命名空间。它可以测量一个时间间隔的运行时间,或跨多个间隔的已用时间总数。 在典型方案中,调用Start()方法,最后调用Stop()方法,然后使用属性 Elapsed 检查运行时间。
二、Stopwatch的字段和属性
字段 |
字段说明 |
Frequency |
获取以每秒刻度数表示的计时器频率。 此字段为只读 |
IsHighResolution |
指示计时器是否基于高分辨率性能计数器。 此字段为只读 |
属性 |
属性说明 |
Elapsed |
获取当前实例测量得出的总运行时间 |
ElapsedMilliseconds |
获取当前实例测量得出的总运行时间(以毫秒为单位) |
ElapsedTicks |
获取当前实例测量得出的总运行时间(用计时器刻度表示) |
IsRunning |
获取一个值,该值表示 Stopwatch 计时器是否正在运行 |
三、Stopwatch的方法
方法 |
方法说明 |
Equals(Object) |
确定指定对象是否等于当前对象 |
GetHashCode() |
作为默认哈希函数 |
GetTimestamp() |
获取计时器机制中的当前刻度数 |
GetType() |
获取当前实例的 Type |
MemberwiseClone() |
创建当前 Object 的浅表副本 |
Reset() |
停止时间间隔测量,并将运行时间重置为零 |
Restart() |
停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间 |
Start() |
开始或继续测量某个时间间隔的运行时间 |
StartNew() |
初始化新的 Stopwatch 实例,将运行时间属性设置为零,然后开始测量运行时间 |
Stop() |
停止测量某个时间间隔的运行时间 |
ToString() |
返回表示当前对象的字符串 |
四、使用实例
using System.Diagnostics;
//创建一个StopWatch实例
Stopwatch stopWatch = new Stopwatch();
//使用StartNew表示已经实例并且开始计时
//Stopwatch stopWatch = Stopwatch.StartNew();
//计时开始
stopWatch.Start();
for (int i = 0; i < 100; i++)
{
Console.Write(i + " ");
}
Console.WriteLine();
//停止计时
stopWatch.Stop();
Console.WriteLine("耗时:" + stopWatch.ElapsedMilliseconds + "ms");
//重置stopWatch
stopWatch.Reset();
Console.WriteLine("耗时:" + stopWatch.ElapsedMilliseconds + "ms");
//重启stopWatch
stopWatch.Restart();
for (int i = 0; i < 20; i++)
{
Console.Write(i + " ");
}
Console.WriteLine();
stopWatch.Stop();
Console.WriteLine("耗时:" + stopWatch.ElapsedMilliseconds + "ms");
//总运行时间
Console.WriteLine("耗时:"+stopWatch.Elapsed);