Stopwatch计时器概述
在C#中,Stopwatch类是System.Diagnostics命名空间的一部分,它提供了一个简单的方式来测量时间间隔。Stopwatch类主要用于高精度测量代码块的执行时间。
以下是Stopwatch类的一些主要方法和属性:
- Start(): 开始计时。
- Stop(): 停止计时。
- Reset(): 重置计时器。
- ElapsedMilliseconds: 获取从开始到当前时间经过的毫秒数。
- ElapsedTime: 获取从开始到当前时间的总时间。
Stopwatch计时器应用完整范例
Stopwatch计时器应用完整范例代码如下
using System;
using System.Diagnostics;
namespace ConsoleApp_StopWatch
{
internal class Program
{
static void Main(string[] args)
{
// 创建Stopwatch实例
Stopwatch stopwatch = new Stopwatch();
// 开始计时
stopwatch.Start();
// 这里放置你想要测量执行时间的代码
for (int i = 0; i < 1000000; i++)
{
// 这只是一个示例,实际情况下,你的代码可能会在这里替换掉这个循环
}
// 停止计时
stopwatch.Stop();
// 获取总时间(以毫秒为单位)
double milliseconds = stopwatch.Elapsed.TotalMilliseconds;
Console.WriteLine("总时间(毫秒): {0}", milliseconds);
// 重置Stopwatch计时器
stopwatch.Reset();
Console.ReadLine();
}
}
}
代码解析:
1)Stopwatch stopwatch = new Stopwatch(); ---- 创建一个新的Stopwatch实例。
2)stopwatch.Start(); ---- 开始计时。此时,计时器开始记录经过的时间。
3)for (int i = 0; i < 1000000; i++) {...} ---- 在这里放置你想要测量执行时间的代码。这个示例中是一个简单的循环,但你可以将其替换为你自己的代码。
4)stopwatch.Stop(); ---- 停止计时。此时,计时器不再记录时间。
5)double milliseconds =
stopwatch.Elapsed.TotalMilliseconds; ---- 使用Elapsed属性获取从开始到停止计时器所经过的时间,并将其转换为毫秒。
6)Console.WriteLine("总时间(毫秒): {0}", milliseconds); ---- 输出经过的时间(以毫秒为单位)。
7)stopwatch.Reset(); ---- 重置Stopwatch计时器。这会清除所有以前的时间测量结果,并准备好再次开始计时。
8)Console.ReadLine();----等待用户操作
注意事项
Stopwatch计时器的精度取决于计算机CPU的主频。它提供了高精度的计时功能,可以精确到纳秒级别,适用于对代码性能进行细致分析。然而,它的精度可能受到计算机硬件和操作系统等多种因素的影响。