C#的Stopwatch 类使用说明

一: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纳秒以下范围内准确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值